OVH Community, votre nouvel espace communautaire.

PHP - connexion au SMTP


Lorenzo77
25/02/2010, 12h53
encore merci Sébastien, j'ai trouvé grâce a ton lien.
la classe PEAR->Net_SMTP, déclare une méthode mail_from(), donc j'ai bêtement supposé qu'elle remplaçait l'entête "From: xxxx", ben non
est ce un bug ou un comportement normal ?


donc pour régler mon problème, je dois appeler la méthode mail_from() et aussi définir l'entête "From: xxxx" dans les données envoyés par la méthode data() ...

Lorenzo77
25/02/2010, 12h43
salut Sébastien et merci

je viens de lire tes messages, très instructifs, je vais refaire une batterie de tests.

concernant l'authentification, des que je l'active, la réponse du SMTP est très clair : "ce serveur ne supporte pas l'authentification" -> SMTP server does not support authentication









gaston, non seulement tu insistes mais tu ne lis même pas la page que tu proposes dans ton message pour m'eclairer ...

voici quelques extraits de TON lien :
Note: Si vous prévoyez d'envoyer des mails HTML ou autrement plus complexes, il est recommandé d'utiliser le paquet PEAR » PEAR::Mail_Mime.
Note: Il est important de noter que la fonction mail() n'est pas conseillée pour traiter de gros volumes de mails dans une boucle. Cette fonction ouvre et ferme un socket SMTP pour chaque mail, ce qui n'est pas très efficace.
Pour envoyer de gros volumes de mails, reportez-vous aux paquets » PEAR::Mail et » PEAR::Mail_Queue.

Sébastien Ferry
25/02/2010, 02h51
En 2008, j'avais proposé (et validé) ça http://forum.ovh.com/showthread.php?t=34854#post181820 :

  • utilisation du serveur SMTP smtp.mon-domaine.com qui est un enregistrement DNS CNAME vers ns0.ovh.net (et pas ns0.ovh.net)
  • identification HELO mon-domaine.com (et pas HELO localhost)

Avec le recul, c'est peut-être le HELO qui est important...

Mais depuis 2008, il y a eu des changements chez OVH (et dans les RFC depuis 2001: je viens de découvrir le EHLO... mieux vaut tard que jamais ):
Citation Envoyé par oles@ovh.net
Bonjour,
La semaine passée, nous avons basculé l'infrastructure des emails au niveau de POP3/IMAP4 et SMTP RELAY + le SSL.
[...]
Il suffit de respecter la configuration qui est décrite ici: http://travaux.ovh.com/?do=details&id=3876
[...]
SMTP: ns0.ovh.net:587 (il faut activer SMTP AUTH dans le SMTP avec le login/mot de passe du compte POP3/IMAP4 ceci évite les erreurs: 553 sorry, that domain isn't allowed to be relayed thru this MTA)
...
Amicalement
Octave
Good luck!

Gaston_Phone
24/02/2010, 13h58
Puisque tu es certain de ce que tu affirmes.

Un petit tour vers : http://fr2.php.net/manual/fr/function.mail.php .

Lorenzo77
24/02/2010, 13h52
cette discussion est stérile, elle n'a rien a voir avec ma question.
pour info, sache que la fonction mail de PHP n'applique pas parfaitement les RFC liés aux smtp, si tu étais un programmeur consciencieux, tu l'aurais déjà remarqué !
va donc lire les RFC en bas de cette page : http://fr.wikipedia.org/wiki/Simple_...nsfer_Protocol , fait des tests et ensuite on en reparlera

Gaston_Phone
24/02/2010, 13h50
Citation Envoyé par Daniel60
edit
? ? ? ?

Daniel60
24/02/2010, 13h22
edit

Gaston_Phone
24/02/2010, 12h55
Faux, la fonction PHP : mail() fait tout ce que tu viens de citer.

Lorenzo77
24/02/2010, 12h30
la fonction mail() n'a aucune utilité dans mon cas, on ne gère pas des newsletters avec elle et elle n'est pas faite non plus pour les mails HTML ainsi que les pièces jointes et elle ne connait pas trés bien les RFC ... bref, elle est juste bonne pour un simple mail texte

Gaston_Phone
24/02/2010, 12h01
Et si tu utilisais simplement la fonction PHP : mail().

Lorenzo77
24/02/2010, 11h59
Bonjour


voici plusieurs jours que je teste le SMTP pour envoyer des mails, hors je me retrouve avec une erreur incompréhensible.

voici le DEBUG :
Code:
DEBUG: Recv: 220 ns0.ovh.net ssl0.ovh.net. You connect to mail623.ha.ovh.net ESMTP
DEBUG: Send: EHLO localhost

DEBUG: Recv: 250-ns0.ovh.net ssl0.ovh.net. You connect to mail623.ha.ovh.net
DEBUG: Recv: 250-AUTH LOGIN PLAIN
DEBUG: Recv: 250-AUTH=LOGIN PLAIN
DEBUG: Recv: 250-PIPELINING
DEBUG: Recv: 250-8BITMIME
DEBUG: Recv: 250 SIZE 15000000
DEBUG: Send: MAIL FROM:

DEBUG: Recv: 250 ok
DEBUG: Send: RCPT TO:

DEBUG: Recv: 250 ok
DEBUG: Send: RCPT TO:

DEBUG: Recv: 250 ok
DEBUG: Send: DATA

DEBUG: Recv: 354 go ahead
DEBUG: Send: Subject: test du SMTP 24/02/2010 11:46:05

Voici le corp du message de test 24/02/2010 11:46:05
.

DEBUG: Recv: 554 mail server permanently rejected message (#5.3.0)
Erreur push data : Invalid response code received from server

tout fonctionne jusqu'au moment ou les mails doivent être envoyés ... la j'ai une erreur #5.3.0
d'aprés la RFC 3463, ce code m'indique une erreur permanente :
Code:
      5.XXX.XXX   Permanent Failure

         A permanent failure is one which is not likely to be resolved
         by resending the message in the current form.  Some change to
         the message or the destination must be made for successful
         delivery.
Code:
      X.3.0   Other or undefined mail system status

         The destination system exists and normally accepts mail, but
         something about the system has caused the generation of this
         DSN.
j'ai fait mes tests avec la classe Net_SMTP de pear et en utilisant directement les sockets mais j'ai toujours cette erreur.
3 jours plus tard et des 100aines de test ne m'ont pas permis de trouver la cause, c'est pourquoi j'ai besoin de votre aide.

merci