Petit nouveau ! |
3 Messages
07 déc. 2005, 20:17
Salut, pour envoyer un mail en HTML qui s'adapte en texte à la boite mail du destinataire si elle ne prend pas en charge l'HTML tu dois envoyer ton corps de message dans les deux formats avec en premier le format HTML.
Pour cela tu dois utliser une boundary (une frontiére) entre chaque partie de ton message. Et aussi, il faut que ces différentes parties possédent un Content-Type pour spécifier s'il s'agit d'html ou de texte.
je te file un bout de code pour que tu comprenne mieux :
//-----------------------------------------------
//DECLARE LES VARIABLES
//-----------------------------------------------
//On déclare la frontiére, je sai pas tro pourquoi mais il faut l'encoder comme ça
$frontiere = '-----=' . md5(uniqid(mt_rand()));
$mail='adresse mail de ton destinataire';
$email_expediteur='ce que tu veu qu\'il apparaisse';
$email_reply='ce que tu veu qu\'il apparaisse pour la reponse';
$message_texte='Bonjour';
$message_html='<html>
<head>
<title>TITRE</title>
</head>
<body>
Ton message
</body>
</html>';
//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------
$headers = "From: <".$email_expediteur.">\n";
$headers .= "Return-Path: <".$email_reply.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$frontiere\"";
//-----------------------------------------------
//MESSAGE HTML
//-----------------------------------------------
$message = "This is a multi-part message in MIME format.\r\n";
//utilisation de la frontiere entre chaque partie
$message .= '--'.$frontiere."\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= $message_html."\n\n";
$message .= "\n\n";
//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$message .= '--'.$frontiere."\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_texte."\n\n";
$message .= "\n\n";
//pour finir tu ecrit la frontiere com ca
$message .= "--" . $frontiere . "--\n";
mail($mail,$sujet,$message,$headers);
Je te file ce lien
clique ici y à un bon tutorial si tu veux plus approfondir la question par exemple en mettant des fichiers joints et tout...
Bonne continuation...