Bonjour,

Dans le cadre d'une application web, j'envoie des mails (j'aurais préférer les envoyer au format texte brut, mais on ne choisi pas toujours...).
Comme ces emails doivent parfois contenir des pieces jointe j'utilise le paquet pear mail et mail_mime.
J'ai lu les article sur pompages sur l'envoie de mail en html, et j'utilise donc une mise en page en tableau pour toucher large.
Mes mail s'affiche a peu près correctement sur tout les clients (web ou lourds) de messagerie (mail sur mac, evolution sur linux, outlook, yahoo) mais pas sur hotmail, le message est bien reçu mais il est "blanc", pourtant j'envoie aussi un message texte brut au cas ou il y ai des difficulté a lire le mail en html.

je ne sais pas vraiment ce que je doit modifier pour que mes mail soit lu sur hotmail aussi.
pourtant je sais que hotmail est capable de lire ce genre de mail (la newsletter de face book s'affiche correctement sur le meme compte hotmail).

voici le code que j'utilise pour le mail:

      $crlf = "\n";
      $hdrs = array('From'    => 'mon@email.moi',
                    'Subject' => "Mon sujet",
                   );
      $param = array(
                  'head_encoding' => 'base64',
                  'html_charset' => 'UTF-8',
                  'text_charset' => 'UTF-8',
                  'head_charset' => 'UTF-8',
                  );
      $mime = new Mail_mime($crlf);
      $text = strip_tags($html);
      $mime->setTXTBody($text);
      $mime->setHTMLBody($html);
      $body = $mime->get($param);
      $hdrs = $mime->headers($hdrs);
      $mail =& Mail::factory('mail');
      $mail->send($repondant['email'], $hdrs, $body);



la variable $html contient le code suivant:

<table cellspacing="0" cellpadding="10" border="0">
  <tr>
    <td align="left">
      <img src="http://XXX.png" alt"XXX" title="XXX">
    </td>
    <td align="center">
      <img src="http://XXX.png" alt"XXX" title="XXX">
    </td>
    <td align="right">
      <img src="http://XXX.png" alt"XXX" title="XXX">
    </td>
  </tr>
  <tr>
    <td colspan="3">
      Bonjour, <br/>
      sqdfqsdmflkmsqldfkmsqdlfk<br/>
      fsmdlfksmldkf mdsldkf<br/>
      <a href="http://sdfsdf.com">sdfsdf</a><br/>
      un gros pavé de texte<br/>
      Un texte plus petit
    </td>
  </tr>
  <tr>
    <td width="20%">
      &nbsp;
    </td>
    <td width="40%">
      &nbsp;
    </td>
    <td width="40%">
      Merci<br/> 
      Cordialement,<br/>
      moi<br/>
    </td>
  </tr>
  <tr>
    <td colspan="3" align="center">
      <font size="-2">Blabla déposé toussa</font>
    </td>
  </tr>
</table>


J'espère avoir été suffisament précis
d'avance merci
Modifié par yobuntu (17 Feb 2010 - 17:01)
Salut,

il me semble que certaines messageries (dont Hotmail ?) ne gèrent toujours pas l'UTF-8. Il faudrait peut-être faire un test en LATIN1 pour vérifier. Peut-être aussi que certaines obligent le Reply-To dans les headers.

Sinon la syntaxe de la ligne suivante est étrange non ?
$mail =& Mail::factory('mail'); 

Modifié par Heyoan (18 Feb 2010 - 10:25)
Merci pour vos réponses!
christele: mon site est hébergé par OVH et j'utilise la fonction mail de ovh (par l'intermediaire de pear::mail)

Heyoan: merci pour le coups de l'utf8, je vais essayer d'envoyer les message en latin 1 alors (mais c'est fou qd meme qu'une entreprise leader dans l'informatique ne gère pas utf8....)


la ligne que tu indique provient d'un exemple de pear, si je me souviens bien des notions d'objet de php5 elle signifie quelque chose comme:

$mail est une reference vers un objet renvoyé par la methode statique factory de la class Mail avec comme parammetre mail.

en gros cette ligne sert a creer un objet mail qui est utilisé après dans le code en spécifiant que c'est la fonction mail de php qui sera utilisé pour envoyé l'email (d'autre parametres sont possible comme sendmail)

Je ne suis pas sur d'avoir le temps de tester le latin 1 aujourd'hui, mais quoi qu'il arrive je vous tient au courant
yobuntu a écrit :
Merci pour vos réponses!
christele: mon site est hébergé par OVH et j'utilise la fonction mail de ovh (par l'intermediaire de pear::mail)


Alors je ne comprends pas pourquoi tu n'utilises pas PHP fonction mail()
C'est super simple et chez OVH marche impec !
je n'utilise pas la fonction mail car c'est un peu compliqué de l'utiliser pour envoyer un email au format html avec une piece jointe, mais c'est au final cette fonction qui est utilisée par pear::Mail_Mime pour envoyer mon email