Aller au contenu

mail HTML


Sujets conseillés

Posté

salut tout le monde,

Lorsque j'envoie un mail au format html il est recu en texte brut , pourtant j'ai bien mis les bon header

mail($envoie_mail["email"],"titre", $message, "From: email_AT_email.com\r\nReply-To: email_AT_email.com\r\nContent-Type: text/html; charset=\"iso-8859-1\"\r\n");

Note:

Exemple repris de nexen

Posté

Salut scarabeuz,

L'exemple que tu donnes est bon, et les entêtes me semblent correctes elles-aussi.

Une question (peut-être idiote): ta variable $message contient bien du code HTML ?

Et dans l'affirmative, les doubles cotes y sont bien précédées de \ ?

Fais un essai en précédent ton appel par ceci:

$message=
"<html><body>" .
"<h1>Email HTML</h1>".
"<b><u>Ceci est un document HTML</u></b><br>" .
"On peut aussi y faire varier les <font size=\"4\">tailles</font> et les <font color=\"red\">couleurs</font>" .
"</body></html>";

Dan

Posté (modifié)

ben enfaite j'ai mis aucun \" je les est surrpime......

voici le code

$message = "<html><head><title>NeoBoot</title></head>
<body>
<p><font size=2>Bonjour,</font></p>
<p><font size=2>blablablablablablablabla</font></p>
<p><b><font color=#FF0000 size=2>Nouveau :<br>
</b><a href=http://www.neoboot.com/service/>plus d'info</a></p>
<p> </p></body></html>";
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: mail_AT_amil.com";  
mail("mail_AT_mail.com","Le sujet du msg",$message,$headers);

Bon j'ai racourci un peu :)

Modifié par Neoboot
Posté

Pas pro du tout, mais...

Je me souviens avoir lu que les \n étaient sensibles à des retours chariots intempestifs, à vérifier éventuellement.

Posté
mail($envoie_mail["email"],"titre", $message, "From: email_AT_email.com\r\nReply-To: email_AT_email.com\r\nContent-Type: text/html; charset=\"iso-8859-1\"\r\n");

Et ca marche, maintenant, ou pas ??

As tu essayé sans les \r\n ? En mettant \n tout court ?

les \r\n sont réservés à windows 32 bits...

A+.

Posté

en faite je sais pas , mon logiciel de lecture email arrive a lire le courier html provenant de neoboot.

J'ai enlever les \r\n j'ai fait un test et pour moi c'est le meme resultat..... donc je sais pas, faut ke je fasse un teste avec kelkun d'autre...... :?:

Posté

c'est surtout une question esthetique la version html, le texte brut....... c'est brute :)

J'utilise pas outlook ...... incredimail

Et puis se qui est bizarre c'est que pour la newsletter j'utilise le meme script et il n'ya aucun probleme apparement......

Posté

J'ai eu parfois ton problème (souvent dû à un problème de caractère mal transcodé)

Dans les cas extrêmes, j'utilise un message en MIME avec version alternative et code en base 64

attention au "chunk_split(base64_encode())" : c'est la clef du truc. Avec ça, n'importe quel code est reconnu, sans cela, bonjour les surprises !

<?php 

$headers = "From: webserver_AT_localhost\r\n";

$headers .= "MIME-Version: 1.0\r\n";

//boundary UNIQUE
$boundary = uniqid("HTMLDEMO");

//INDICATION DE CONTENU ALTERNATIF PLAIN TEXTE HTML
$headers .= "Content-Type: multipart/alternative" .
  "; boundary = $boundary\r\n\r\n";

//MESSAGE D'ALERTE
$headers .= "Ceci est un message encodé MIME.\r\n\r\n";

//plain text
$headers .= "--$boundary\r\n" .
  "Content-Type: text/plain; charset=ISO-8859-1\r\n" .
  "Content-Transfer-Encoding: base64\r\n\r\n";
$headers .= chunk_split(base64_encode("Version plain text !"));

//version HTML
$headers .= "--$boundary\r\n" .
  "Content-Type: text/html; charset=ISO-8859-1\r\n" .
  "Content-Transfer-Encoding: base64\r\n\r\n";
$headers .= chunk_split(base64_encode("Version <b>HTML</b>"));

//send
message
mail("root_AT_localhost", "Un Message HTML", "", $headers);
?>

Cela marche aussi sans la zone plain text !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...