mail au format txt / html
Hors ligneChristobal Le 27/04/2008 à 17:15 Profil de Christobal Configuration de Christobal

bonjour
J'ai testé le tuto pour envoyer un mail en multi format (txt / html) mais ca ne marche pas.
Tout ce que je recoi dans outlook c'est le message en txt et dans mon webmail (qui lit que tu txt) il n'y a pas le corps du message.
pouvez vous m'aider ? j'aimerais bien pouvoir gérer c'est deux format a l'envoie d'un mail.

Merci
Hors ligneAnthony Le 30/04/2008 à 23:50 Profil de Anthony Configuration de Anthony

Admin
Salut :)

Tu peux coller ton code ici pour qu'on puisse t'aider ? (dans une balise [code=php])
--

Hors ligneChristobal Le 01/05/2008 à 09:40 Profil de Christobal Configuration de Christobal

Ni Plus Ni Moins que :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<?php
    
//----------------------------------------------- 
    //DECLARE LES VARIABLES 
    //----------------------------------------------- 

     $destinataire='mail_destinataire@fai.fr';
     $email_expediteur='votre_mail@fai.fr'
     $email_reply='email_de_reponse@fai.fr';

     $message_texte='Bonjour,'."\n\n".'Voici un message au format texte'
     $message_html='<html> 
     <head> 
     <title>Titre</title> 
     </head> 
     <body>Test de message</body> 
     </html>'


    //----------------------------------------------- 
    //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML 
    //----------------------------------------------- 

     $frontiere '-----=' md5(uniqid(mt_rand())); 

    //----------------------------------------------- 
    //HEADERS DU MAIL 
    //----------------------------------------------- 

     $headers 'From: "Nom" <'.$email_expediteur.'>'."\n"
     $headers .= 'Return-Path: <'.$email_reply.'>'."\n"
     $headers .= 'MIME-Version: 1.0'."\n"
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"'

    //----------------------------------------------- 
    //MESSAGE TEXTE 
    //----------------------------------------------- 
     $message 'This is a multi-part message in MIME format.'."\n\n"

     $message .= '--'.$frontiere.'--'."\n"
     $message .= 'Content-Type: text/plain; charset="UTF-8"'."\n"
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n"
     $message .= $message_texte."\n\n"

     //----------------------------------------------- 
     //MESSAGE HTML 
     //----------------------------------------------- 
     $message .= '--'.$frontiere.'--'."\n";
     $message .= 'Content-Type: text/html; charset="UTF-8"'."\n"
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n"
     $message .= $message_html."\n\n"

     $message .= '--'.$frontiere.'--'."\n"

     if(mail($destinataire,$sujet,$message,$headers)) 
     
          echo 'Le mail a été envoyé'
     
     else 
     
          echo 'Le mail n\'a pu être envoyé'
     

?>
</body>
</html>
Hors ligneAnthony Le 01/05/2008 à 11:26 Profil de Anthony Configuration de Anthony

Admin
Bizarre bizarre ...

Dans mon code j'avais mis un quoted-printable pour l'encodage du texte, essaie de remettre ça dans le code ;)

Sinon j'avais aussi mis un Content-transfer-encoding à 7bit au lieu de 8bit mais vu que tu prends de l'utf-8 ça devrait être bon le 8bit ... j'utilise le même code sur le site à part les différences dont je viens de te parler et ça fonctionne, donc ça ne peut venir que de là ;)
--

Hors ligneChristobal Le 01/05/2008 à 21:30 Profil de Christobal Configuration de Christobal

heuuu, je ne suis pas arrivée a mettre en place le quoted-printable.
le résultat et tj le même.
je me suis peut être tompé,

$message .= "--".$limite."\n";
$message .= "Content-Type: text/plain\n";
$message .= 'charset="iso-8859-1"'."\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $text;

merci
Hors ligneAnthony Le 01/05/2008 à 21:41 Profil de Anthony Configuration de Anthony

Admin
essaie ça :


<?php
//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//-----------------------------------------------

$frontiere '-----=' md5(uniqid(mt_rand()));

//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------

$headers  'From: "' $email_reponse '" <' $email_reponse '>' "\n";
$headers .= 'Return-Path: <' $email_reponse '>' "\n";
$headers .= 'MIME-Version: 1.0' "\n";
$headers .= 'Content-Type: multipart/alternative; boundary="' $frontiere '"';

//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------

$message  'This is a multi-part message in MIME format.' "\n\n";
$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 HTML
//-----------------------------------------------
 
               
$message 
.= '--' $frontiere "\n";

$message .= 'Content-Type: text/html; charset="iso-8859-1"' "\n";
$message .= 'Content-Transfer-Encoding: 7bit' "\n\n";

$message .= $message_html "\n\n";

$message .= '--' $frontiere '--' "\n";

return 
mail($destinataire$sujet$message$headers);
?>


sinon la balise de fermeture de code c'est [/code] ;)
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels