- 1
[Opened] [RESOLU] Envoi d'email [problème d'entête, ...]
Posted by francois.thareau on 07/07/2009 18:35
Bonjour,
J'ai une application confirmant une inscription par email. Je suis reparti du tuto de la documentation.
Premier problème :
Je fais mon développement, tous va bien , puis une erreur :
[exception 353] jMailer : Impossible d'instancier la fonction mail. D:\FTH\Projet\multi-touch-academie\lib\jelix\utils\jMailer.class.php 182
Je trouve comment corriger le problème grâce à la doc ( rajout d'un 1 !), je l'installe sur le serveur, toujours ok. Puis après deux ou trois test en LOCAL, je retrouve l'erreur.
Je veux bien un peu d'aide !
Second problème
Mon application d'envoi de mail est installé sur un serveur dédié (gentoo) OVH. L'application est en UTF-8.
$mail = new jMailer(); $tpl2 = $mail->Tpl('blabla~preinscription'); $tpl2->assign('name', $prenom.' '.$nom); $mail->AddAddress($email , $nom.' '.$prenom); $mail->Subject = 'toto sujet'; $mail->Send(); {meta From "toto<toto@toto.fr>"}
Sous windows :
sous Outlook : L'encodage des caractères est ok sujet/message Il n'y a pas d'expéditeur L'entête e-mail est présente dans le corps du message sous thunderbird : L'encodage des caractères du sujet est ok, mais pas celui des messages (cela peut venir de la config thunderbird) Il n'y a pas d'expéditeur L'entête e-mail est présente dans le corps du message
ex :
From: toto <toto @toto .fr>
Message-ID: <126ec766fdc572b5a@www.----.fr>
X-Priority: 3
X-Mailer: PHPMailer (phpmailer.codeworxtech.com) version 2.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="UTF-8"
X-Ovh-Tracer-Id: 8185573799147788221
X-Ovh-Remote: 94.23.213.208 (ns304626.ovh.net)
X-Ovh-Local: 213.186.33.29 (mx1.ovh.net)
X-Spam-Check: DONE|U 0.5/N
Bonjour
Sous Ubuntu et Thunderbird:
L'encodage des caractères est ok sujet/message L'expéditeur OK Et pas d'entête email dans le message !
Pour info j'ai essayé pas mal de config (Le from dans le controleur , le webmasterName .... Alors si vous avez des idées de configuration du serveur, de mon appli jelix , apache, php, je vous écoute.
[Opened] Re: Envoi d'email [problème d'entête, ...]
Posted by foxmask on 07/08/2009 09:30
Bonjour,
Sous windows en "locale" il faut avoir son propre serveur SMTP. S'il n'y en a pas de configurer sur son ordinateur il se produit exactement cette erreur.
Sinon si on utilise les SMTP d'OVH dans le defaultconfig.ini.php, il est propable que les réponses retourner par le serveur ne soit pas assez rapide pour PHP. Cette tolérance qu'à un MUA mais peut-etre pas autant PHP ;-)
Je suggérerai bien de tester avec des temps de pause plus long entre chaque essai d'envoi de mail.
cdt.
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Re: Envoi d'email [problème d'entête, ...]
Posted by francois.thareau on 07/08/2009 10:10
Bonjour,
Tu as réglé mon problème pour le local, Je passe par la fonction mail car je n'ai pas configurer le smtp. Dans le cas local il me mets aussi l'entête dans le message.
(et c'est un serveur dédié ovh)
Cordialement, François
[Opened] Re: Envoi d'email [problème d'entête, ...]
Posted by laurentj on 07/08/2009 12:27
En lisant la source du message dans ton client mail, tu obtiens quoi ? (pour thunderbid : affichage > code source de la page)
[Opened] [RESOLU] Re: Envoi d'email [problème d'entête, ...]
Posted by francois.thareau on 07/08/2009 14:44
Meric pour votre aide,
mon problème vient des compte mail dont je dispose chez ovh (sous gmail aucun soucis)
[Opened] Re: [RESOLU] Envoi d'email [problème d'entête, ...]
Posted by Julien on 07/10/2009 18:28
Hello,
je crois que j'ai eu un problème du même genre à l'instant : une partie des entêtes de mail dans le corps du message.
La faute aux fins de ligne apparement :
- il faut (RFC 2822) que les headers soient séparés par \r\n et phpMailer gère ça comme il faut.
- l'ami Qmail (répandu sur les dedies release OVH, je pense que c'est ton smtp François ?) s'attend apparemment à recevoir uniquement des fins de lignes \n (standard UNIX) et les remplace par du \r\n.
Donc au final, on obtient : \r\r\n, plus conforme à la RFC et ça plante.
Historique de la chose : http://bugs.php.net/bug.php?id=15841
et la note sur http://fr.php.net/manual/fr/function.mai(..) :
Note: Si le message n'est pas reçu, essayez d'utiliser uniquement un caractère LF (\n). Quelques agents de transfert de mail Unix de mauvaise qualité remplacent le caractère LF par le caractère CRLF automatiquement (ce qui revient à doubler le caractère CR si le caractère CRLF est utilisé). Ceci doit être un dernier recours car cela ne correspond pas à la » RFC 2822.
Bon, je dirais pas que Qmail est de "mauvaise qualité", mais en tout cas il semble pas respecter la RFC de ce côté-là.
Pour la résolution, le mieux est de passer via un envoi SMTP plutôt que via la fonction mail().
Autre solution (uniquement si qmail et fonction mail()) :
$mail = new jMailer(); $mail->LE = "\n";
mais c'est plus chiant.
Peut-être qu'il faudrait que Jelix gère un paramètre "isQmail", et changer la propriété jMailer::$LE en fonction ? Il faudrait des tests approfondis sur d'autres mailers (postfix, exim, sendmail, ...)
Julien
- 1