Mail et Client Web ?

cs_Varod
Messages postés
15
Date d'inscription
mercredi 31 décembre 2003
Statut
Membre
Dernière intervention
25 août 2004
- 25 août 2004 à 12:41
korrox
Messages postés
60
Date d'inscription
mercredi 9 juillet 2003
Statut
Membre
Dernière intervention
3 septembre 2004
- 28 août 2004 à 04:52
Bonjour,

Lors de l'envoie de mail au format HTML, je rencontre des problemes selon les clients web.

Certes, il y a le probleme de la lecture des mails au format texte ou HTML mais je pense que la fonction que j'utilise (ci-dessous) resoud ce probleme.

Le probleme est que sur hotmail par exemple, le corps du mail n'apparait pas du tout, seul l'emeteur, destinataire et sujet apparaissent ... alors que le meme courrier lu sous outlook ne pose aucun probleme. Est ce que vous savez comment resoudre ce probleme?

Voici la fonction que j'utilise (je l'ai peut etre reccup ici mais je ne me souviens plus :op)

function mail_html($to,$sujet,$message,$reply,$from,$entete=""){
$limite = "_parties_".md5 (uniqid (rand()));

//$mail_mime = "Date: ".Date("l j F Y, G:i")."\n";
$mail_mime .= "MIME-Version: 1.0\n";
$mail_mime .= "Content-Type: multipart/alternative;\n";
$mail_mime .= " boundary="----=$limite"\n\n";

//Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML
$texte_simple = "This is a multi-part message in MIME format.\n";
$texte_simple .= "Ceci est un message est au format MIME.\n";
$texte_simple .= "------=$limite\n";
$texte_simple .= "Content-Type: text/plain; charset="US-ASCII"\n";
$texte_simple .= "Content-Transfer-Encoding: 7bit\n\n";
$texte_simple .= strip_tags(eregi_replace("
", "\n",$message));
$texte_simple .= "\n\n";

//le message en html original
$texte_html = "------=$limite\n";
$texte_html .= "Content-Type: text/html; charset="US-ASCII"\n";
$texte_html .= "Content-Transfer-Encoding: 7bit\n\n";
$texte_html .= $message;
$texte_html .= "\n\n\n------=$limite\n";

return mail($to, $sujet, $texte_simple.$texte_html,"From:$from\nReply-to:$reply\n".$mail_mime.$entete);
}

3 réponses

cs_Varod
Messages postés
15
Date d'inscription
mercredi 31 décembre 2003
Statut
Membre
Dernière intervention
25 août 2004

25 août 2004 à 15:14
Je viens d'essayer plusieurs solution que j'ai trouvé sur le net un peu a droite et a gauche. Il semblerait que ce soit a cause des caracteres de retours chariots. J'ai donc essayer avec "\r\n" et "\x0d\x0a" cela fonctionne mais tjs po sous hotmail??
C'est assez urgent, est ce que vous pourriez me guider SVP merci

Vince.
0
flashfun
Messages postés
296
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
11 septembre 2004

25 août 2004 à 22:49
Le nombre de ligne est très important,
peut-être qu'il y en a trop.

FlashFun 8-) [mailto:toujours_zen@hotmail.com :question) ]
0
korrox
Messages postés
60
Date d'inscription
mercredi 9 juillet 2003
Statut
Membre
Dernière intervention
3 septembre 2004

28 août 2004 à 04:52
Les différents en-têtes sont séparés par le caracetere \n, bien que les spécification réclament \r\n. Ce choix a été fait car, suivant la plateforme à partir de laquelle est envoyée l'e-mail, il peut arriver que \r\n soit converti en \n\n, ce qui conduit à de mauvaise affichage de la part des clients e-mail. (certain en-téte sont affichés comme faisant partie du texte du message ). De nos jour la majorité des programmes d'envoie d'e-mail supportent le fait que les en-tête soient séparés uniquement par un \n. Comme toi tu a mis soit \r\n ou soit \n\n ton client e-mail n'affiche pas le corp de ton e-email. Donc remplace tout sa par simplement un \n :)

ps: désolé pour le retard de la réponse.

Une bonne programmation c'est avant tout une bonne analyse. :)
0