Pb envoi mail HTML

Petit nouveau ! | 5 Messages

28 juin 2012, 15:29

Bonjour,


Depuis une application web PHP j'envoi des mails au format HTML sur différents types de messagerie.

Sur des clients type GMAIL, HOTMAIL ou encore sur Outlook il n'y a pas de problèmes, le code est exécuté et ma mise en page respectée (il s'agit juste d'un tableau, rien de plus).

Par contre sur d'autres types de messagerie -peut-être plus archaïque- comme par exemple Horde, le code s'affiche dans le message et n'est pas interprété.

J'ai fait un test en envoyant un mail depuis Outlook avec un tableau et des couleurs vers cette messagerie qui pose problème et résultat, je ne retrouve pas mon tableau ni mes couleurs mais j'ai bien le contenu de mon mail et les infos du tableau qui s'affiche avec des sauts de ligne (sans mise en page donc).

Comment reproduire la même chose avec la fonction mail de php sans que le code s'affiche en clair ?


Voici mon code pour le moment :

Code : Tout sélectionner

srand((double)microtime()*1000000); $valeur = md5(uniqid(rand())); $headers = "From: toto <[email protected]>\n"; $headers .= "Reply-To: toto <[email protected]>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/alternative; boundary=$valeur\n"; $subject = $_POST['sujet']; $html = "\nThis is a multi-part message in MIME format."; $html .= "\n--$valeur\nContent-type: text/html; charset=\"iso-8859-1\"\n\n"; $html .= "<html>\n"; $html .= "<body>\n"; $html .= "<table><tr><td>blablalblabla</td><td>blablabla</td></tr></table>"; mail($to, $subject, $html, $headers);

Merci :)

ViPHP
ViPHP | 2577 Messages

28 juin 2012, 15:54

Il faudrait que tu regardes le source du mail reçu pour essayer de trouver des différences dans les entêtes entre ceux envoyer par outlook et par php.

Petit nouveau ! | 5 Messages

29 juin 2012, 11:05

En fait ce que j'aimerais c'est qu'en cas de non acceptation du HTML par la messagerie, le message soit quand même lu (sans la mise en page html bien sur).

J'ai regardé les entêtes des messages envoyés depuis mon appli web et depuis Outlook, pas de grandes différences (mais peut-être qui ont leur importance?) :

Outlook :

Code : Tout sélectionner

Accept-Language: fr-FR Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: fr-FR Content-Type: multipart/alternative; boundary="_000_E0CB991FF072B143A6758CFE30D1D98003ED476D88SEUEVY01MXCL4_" MIME-Version: 1.0 (...) 000_E0CB991FF072B143A6758CFE30D1D98003ED476D88SEUEVY01MXCL4_ Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable (...) puis le message
Mon appli web :

Code : Tout sélectionner

MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit (...) This is a multi-part message in MIME format. -- Content-type: text/html; charset="iso-8859-1" (...) puis le message

Des idées ?

ViPHP
ViPHP | 2577 Messages

29 juin 2012, 11:19

La grosse différence, c'est que le mail envoyé par outlook n'est pas en html. Ca explique peut être la différence de comportement.

Petit nouveau ! | 5 Messages

29 juin 2012, 14:13

Je suis allé jusqu'au bout du code source et surprise je découvre une séparation et de nouveau le message mais avec les balises HTML !!

Code : Tout sélectionner

Message format texte (...) --_000_E0CB991FF072B143A6758CFE30D1D98003EDD97094SEUEVY01MXCL4_ Content-Type: text/html; charset="iso-8859-1" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML xmlns=3D"http://www.w3.org/TR/REC-html40" xmlns:v =3D = (...) Message format HTML

Ce qui veut dire que le message est envoyé aux 2 formats par Outlook ? Et c'est la messagerie qui lit celui qu'elle peut interpréter ? Si c'est faisable je suis preneur !!

Petit nouveau ! | 1 Messages

30 juin 2012, 20:47

Utilise Zend_Mail celui ci t’aidera grandement !