Bonjour, Gianluigi_Zanettini-MegaLab.it dans [fr2.php.net] dit que le problème de nom avec l'adresse du destinataire est dû au système d'exploitation. Sous windows, il ne serait pas possible d'avoir un destinataire de forme "Christophe Charron" <christophe.charron@chezmoi.surterre>
Je le constate en effet avec mon serveur WAMP5, mais je pensais que cela venait de mon FAI. Avez-vous un moyen de contourner ce petit problème ?
Ben non ... <br /> <b>Warning</b>: mail() [<a href='function.mail'>function.mail</a>]: SMTP server response: 501 Bad address syntax in <b>C:\wamp\moi\graal\exploit\_orange_exe_courriel_envoie_test_02.php</b> on line <b>46</b><br /> Le courriel n'a pas été envoyé à <christophe> christophe.charron.xxx@gmail.com
envoie("Christophe Charron <xofxon@orange.fr>" function envoie($vl_c_destinataire) { $eol="\n"; $today = date("D M j G:i:s T Y" $vl_c_smtp="smtp.orange.fr"; $vl_c_sendmail_from="xofxon@orange.fr"; $vl_c_port_smtp=25; $vl_c_sujet="Envoi test 71 depuis Compte orange $today depuis site haisoft"; $vl_c_headers=<<<EOT From: Christophe Charron <xofxon@orange.fr> Reply-To: Christophe Charron <xofxon@orange.fr> Date: Sat, 29 Sep 2007 16:36:44 +0200 (CEST) MIME-Version: 1.0 Content-Type: multipart/related; boundary="====45f2a613fb1ae7141f749c82db5238ee====" Reference: <2b1f3d32-beee-102a-ab83-00188bf7a97a@christophe-charron.org> X-Mailer: Les tites mimines de xof EOT; $vl_c_message=<<<EOT --====45f2a613fb1ae7141f749c82db5238ee==== Content-type: text/plain; charset=utf-8 Saisissez le message... Ici et là et encore ici et je continue ...
--====45f2a613fb1ae7141f749c82db5238ee====-- EOT; //******************************************* // Modification ponctuelle des paramètres du serveur //******************************************* ini_set('SMTP',$vl_c_smtp); ini_set('sendmail_from',$vl_c_sendmail_from); ini_set('smtp_port',$vl_c_port_smtp); if (mail($vl_c_destinataire, $vl_c_sujet, $vl_c_message, $vl_c_headers) == true){ echo "ok, courrier envoyé à $vl_c_destinataire".$eol."$vl_c_sujet".$eol."$vl_c_message".$eol."$vl_c_headers"; } else { echo "Le courriel n'a pas été envoyé à $vl_c_destinataire".$eol."$vl_c_sujet".$eol."$vl_c_message".$eol."$vl_c_headers"; } //******************************************* // Remise en l'état des paramètres du serveur //******************************************* ini_restore('SMTP'); ini_restore('sendmail_from'); ini_restore('smtp_port'); }
Mais je me demande aussi si cela ne vient pas de mon FAI Orange ... ???
> $header = "From: <heheh> hehehe@huhu.com\n"; > $header.= "Reply-To: <heheh> hehehe@huhu.com\n"; > $header.= "MIME-Version: 1.0\n"; > > mail($dest, $sujet, $mess, $header); > > ça ne marche pas comme ça ? c'est ce que j'utilise, ça > fonctionne sur toutes les messageries web et logicielles :s
Heu, je suis quand même étonné que cela fonctionne sous windows ...
Note: L'implémentation de la fonction mail() sous Windows diffère de manière significative avec l'implémentation Unix. Tout d'abord, il n'utilise pas un programme local pour composer les messages, mais opère uniquement et directement sur les sockets, ce qui signifie qu'un MTA est nécessairement à l'écoute sur un socket du réseau (qui peut être soit sur le réseau local ou sur une machine distante).
Deuxièmement, les en-têtes personnalisés comme From:, Cc:, Bcc: et Date: ne sont pas interprétés par le MTA dans un premier temps, mais sont analysés par PHP.
De plus, le paramètre to ne doit pas être une adresse sous la forme "Quelque chose <quelqu_un@example.com>". La commande mail n'analysera pas correctement ceci lors de la discussion avec le MTA.