[PHP] Difficultés avec la fonction Mail /HTML
miltonis
Messages postés
234
Date d'inscription
Statut
Membre
Dernière intervention
-
got -
got -
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:
et
??? 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
Merci beaucoup de votre aide :) et bonne S-V pour les amoureux !
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 : ...aasur Outlook (le html est activé)
et
CIVILITE : mme SOCIETE : NOM : Mario PRENOM : blabla ADRESSELIVR : rue de la livraison CPLIVR : 75001 V.... MESSAGE : xxxxxsur 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:
- [PHP] Difficultés avec la fonction Mail /HTML
- Fonction si et - Guide
- Windows live mail - Télécharger - Mail
- Editeur html - Télécharger - HTML
- Publipostage mail - Accueil - Word
- J'ai deux compte facebook avec la meme adresse mail ✓ - Forum Facebook
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>
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>
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
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
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
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
//$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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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:
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.
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.
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++ :)
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++ :)