[PHP] Difficultés avec la fonction Mail /HTML

Fermé
miltonis Messages postés 234 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 30 septembre 2022 - 14 févr. 2008 à 23:13
 got - 30 sept. 2008 à 09:55
Bonjour,
Je suis en train de tester une focntion d'envoi de mails que j'ai un peu modifiée. ça marche bien dans l'envoi et la réception mais le souci est dans la FORME :

On dirait que l'envoi ne prend pas en compte le Content-Type HTML que je demande. Lorsque je reçois le message envoyé par un formulaire, voici ce que ça donne:
Message-Id: <20080214214904.59EBD45EA6@90plan.ovh.net> Date: Thu, 14 Feb 2008 22:49:04 +0100 (CET) X-Ovh-Remote: 213.186.xx.xxx (8.mail-out.ovh.net) X-Ovh-Local: 213.186.xx.xx (mx3.ovh.net) X-Spam-Check: DONE|H 0.5/N X-Antivirus: AVG for E-mail 7.5.516 [269.20.5/1278] CIVILITE : SOCIETE : NOM : Mario PRENOM :blablabla ADRESSELIVR : rue de la livraison  MESSAGE : ...aa 
sur Outlook (le html est activé)
et
CIVILITE : mme SOCIETE : NOM : Mario PRENOM : blabla ADRESSELIVR : rue de la livraison CPLIVR : 75001 V.... MESSAGE : xxxxx
sur une autre messagerie.

??? A quoi est-ce du ? Ne puis-je pas éviter tout le charabia au-dessus ? Et comment faire pour que soit pris en compte les sauts de ligne ???

Pour info, voici le code que j'utilise
$email = $_POST['email'];
$TO = "monmail@netcourrier.com";
$reponse = $email;
$h  = "From: $email\r\nReply-To: $reponse\r\nContent-Type: text/html; charset=\"iso-8859-1\"\r\n";

$msg = "";
//$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
//$msg .= "MIME-Version: 1.0\r\n"; 
//$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= "NOM : ".$_POST['prenom']."\r\n"; 
$msg .= "PRENOM : ".$_POST['nom']."\r\n";
$msg .= "ADRESSELIVR : ".$_POST['adresse_livraison']."\r\n"; 
.....
$msg .= "MESSAGE : \r\n".$_POST['message']."\r\n";
$msg .= "\r\n";

mail($TO, "Commande de livraison", $msg, $h);

Header("Location: https://www.google.fr/?gws_rd=ssl");


Merci beaucoup de votre aide :) et bonne S-V pour les amoureux !
A voir également:

5 réponses

Bonjour

Je pense (pas sûr) que ça vient du \r\n à la fin du $h. Il en faut pour séparer les en-têtes, mais pas à la fin. ça devrait supprimer les 'truc bizarres' au début de ton message.
D'autre part, dans le corps du message, si tu veux des passages à la ligne en HTML, ce n'est pas \r\n qu'il faut insérer, mais <BR>
0
Bonjour tout le monde,

Merci de ta réponse Père, mais ça ne change rien...
Du coup j'ai essayé autrement, voici le code
$email = $_POST['email'];
$TO = $_POST['destinataire'];
$subject = $_POST['titre'];
$reponse = $email;
$h  = "From: $email\r\nReply-To: $reponse\r\nContent-Type: text/html; charset=\"iso-8859-1\"";

$message = "";
$message = "<html><body>";
$message .= "NOM : ".$_POST['nom'];
$message .= "<br />PRENOM : ".$_POST['prenom'];
$message .= "<br />EMAIL : ".$_POST['email'];
$message .= "<br /><br />MESSAGE :<br />".$_POST['message'];
$message .= "</html></body>";

mail($TO, $subject, $message, $h);

Header("Location: http://www.......");


Résultats
sur ma messagerie Outlook

Reply-To: xxxxx@wanadoo.fr
Content-Type: text/html; charset="iso-8859-1"
X-Abuse-To: abuse@proxad.net
Message-Id: <20080216112905.31E15EC30@php9.online.net>
Date: Sat, 16 Feb 2008 12:29:05 +0100 (CET)
X-Ovh-Remote: 212.27.35.49 (php9.online.net)
X-Ovh-Local: 213.186.33.73 (mx3.ovh.net)
X-Spam-Check: DONE|H 0.5/N
X-Antivirus: AVG for E-mail 7.5.516 [269.20.6/1282]
<html><body>NOM : TestNom<br />PRENOM : TestPrenom<br />EMAIL : xxxxx@wanadoo.fr<br /><br />MESSAGE :<br />efezjkb e fefzfgbehuzfe</html></body>


Sur Free
<html><body>NOM : TestNom<br />PRENOM : Testprenom<br />EMAIL : xxxxxxx@wanadoo.fr<br /><br />MESSAGE :<br />dfvbedkvbzebjhze</html></body>

sur netcourrier, ça va....
apparemment ce serait parce que le HTML n'est pas activé sur Free, mais alos
comment faire pour que les sauts de ligne soient pris en compte ?
et sur outlook ? qqn a déjà rencontré ce problèem ?

merci bcp de votre aide !
bon WE
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 févr. 2008 à 13:17
Bonjour,


//$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
//$msg .= "MIME-Version: 1.0\r\n";
//$msg .= "Content-Transfer-Encoding:8bit\r\n";


tout ça, il faut le rajouter dans $h
-1
miltonis Messages postés 234 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 30 septembre 2022 19
16 févr. 2008 à 13:50
Salut,
Tu penses bien que j'ai essayé, résultat c'est aussi inclut dans le corps du mail.
Et avec le(mon) message n°2, ça fonctionne mieux.

Ce que je voudrais savoir
- comment faire pour que les sauts de ligne soient pris en compte ?
- et si besoin, que les entêtes ne s'affichent pas...

merci
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 févr. 2008 à 21:54
Bonsoir,

c'est sur que si tu mets :

$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$msg .= "MIME-Version: 1.0\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";


Ca sera inclus dans le début du message, il faut mettre ces parametres dans l'entête du message:
donc dans ton cas:
$h .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$h .= "MIME-Version: 1.0\r\n";
$h .= "Content-Transfer-Encoding:8bit\r\n"; </ital>



Si tu veux que les sauts de lignes soit pris en compte en html:
tu as /bien mis <br /> à la fin de la ligne, mais comme ton message n'était pas interprété au format HTMl ils ne marchaient pas.
-1
miltonis Messages postés 234 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 30 septembre 2022 19
22 févr. 2008 à 22:55
Bonjour Alain (et les autres !)

Je suis désolé je réponds bien tard mais ça ne fonctionne toujours pas sur mon outlook.
Ce qui est étrange c'est que sur des messageries externes (netcourrier, free, le Outlook du boulot), ça fonctionne mais sur celui à la maison : nada !
Ce qui m'amène à penser que c'est un paramétrage du logiciel qui est en cause..... :/
Je vais voir si c'est ça et reviens à la charge
a++ :)
-1
got > miltonis Messages postés 234 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 30 septembre 2022
30 sept. 2008 à 09:55
Salut,

Alors, as tu trouvé la solution ?

Got
0