cs_Varod
Messages postés15Date d'inscriptionmercredi 31 décembre 2003StatutMembreDernière intervention25 août 2004
-
25 août 2004 à 12:41
korrox
Messages postés60Date d'inscriptionmercredi 9 juillet 2003StatutMembreDerniè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";
cs_Varod
Messages postés15Date d'inscriptionmercredi 31 décembre 2003StatutMembreDernière intervention25 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
korrox
Messages postés60Date d'inscriptionmercredi 9 juillet 2003StatutMembreDerniè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. :)