Aller au contenu
scarabeuz

mail HTML

Noter ce sujet :

Recommended Posts

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 scarabeuz

Partager ce message


Lien à poster
Partager sur d’autres sites

Pas pro du tout, mais...

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

Partager ce message


Lien à poster
Partager sur d’autres sites
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+.

Partager ce message


Lien à poster
Partager sur d’autres sites

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...... :?:

Partager ce message


Lien à poster
Partager sur d’autres sites

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......

Partager ce message


Lien à poster
Partager sur d’autres sites

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 !

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×