OVH Cloud OVH Cloud

fonction mail()

3 réponses
Avatar
Gerald Yart
Bonjour et bonne année à tous,

J'ai un petit pb que je n'arrive à résoudre avec la fonction mail() :
dans une page PHP, je récupère l'email d'un utilisateur afin de le
stocker dans une BD. Jusque là, pas de pb. Une fois cet email récupéré
et stocké, j'envoie un un message à l'utilisateur afin de lui confirmer
son inscription et de vérifier si l'adresse existe (si j'ai un message
de retour c'est que l'adresse n'est pas valide). Le problème c'est que
je n'arrive pas à récupérer ce message de retour (message du genre :
Diagnostic-Code: SMTP; 550 toto@tutu.com...User unknown).
Je dispose d'un serveur web (warg.orleans.inra.fr) et d'un serveur de
messagerie (orleans.inra.fr). Je suppose que PHP utilise le serveur SMTP
de mon serveur web et que le message lui revient à lui et non à moi (je
ne sais pas si c'est très clair ce que j'écris ???). Peux-'on indiquer à
la fonction mail() d'utiliser un serveur SMTP plutôt que celui par défaut ?

Merci de m'avoir lu,

Gérald

3 réponses

Avatar
Thibaut Allender

Je dispose d'un serveur web (warg.orleans.inra.fr) et d'un serveur de
messagerie (orleans.inra.fr). Je suppose que PHP utilise le serveur SMTP
de mon serveur web et que le message lui revient à lui et non à moi (je
ne sais pas si c'est très clair ce que j'écris ???). Peux-'on indiquer à
la fonction mail() d'utiliser un serveur SMTP plutôt que celui par défaut ?


non, pas sous unix

mais tu peux t'orienter vers les sockets pour directement interroger le
serveur mail de ton choix (toutefois, si c'est un relay, tu ne pourras
pas verifier que le user existe reelement)

j'ai deja debattu a ce sujet, voir :
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=utf-8&th¢ff565aedb08675&seekm?6f5521%240%2427051%24626a54ce%40news.free.fr&frame=off

a+

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org

Avatar
loufoque
Pour faire cela, mieux vaut recoder la fonction mail().
Ceci peut être aisément fait avec fsockopen()
Avatar
Johann Dantant
"Gerald Yart" a écrit dans le message
de news:3ffd3602$0$29074$
Bonjour et bonne année à tous,

J'ai un petit pb que je n'arrive à résoudre avec la fonction mail() :
dans une page PHP, je récupère l'email d'un utilisateur afin de le
stocker dans une BD. Jusque là, pas de pb. Une fois cet email récupéré
et stocké, j'envoie un un message à l'utilisateur afin de lui confirmer
son inscription et de vérifier si l'adresse existe (si j'ai un message
de retour c'est que l'adresse n'est pas valide). Le problème c'est que
je n'arrive pas à récupérer ce message de retour (message du genre :
Diagnostic-Code: SMTP; 550 unknown).
Je dispose d'un serveur web (warg.orleans.inra.fr) et d'un serveur de
messagerie (orleans.inra.fr). Je suppose que PHP utilise le serveur SMTP
de mon serveur web et que le message lui revient à lui et non à moi (je
ne sais pas si c'est très clair ce que j'écris ???). Peux-'on indiquer à
la fonction mail() d'utiliser un serveur SMTP plutôt que celui par défaut
?




L'accès SMTP est effectivement celui paramétré par ton hébergeur, qui est
certainement le sendmail du serveur qui héberge ton site. Sauf configuration
exotique, il va remettre ton mail à un serveur SMTP interne à l'hébergeur,
qui va donc forcément l'accepter, puis ensuite tenter de le relayer au
serveur gérant le domaine du destinataire. Tu ne devrais donc jamais avoir
d'erreur durant la phase SMTP (sauf serveur qui vérifie d'avance la validité
du domaine). Le bon moyen de vérifier que l'adresse est bien valide c'est
donc de spécifier une adresse de retour destinée à recevoir les éventuels
bounces, puis à disséquer (automatiquement ou à la main) les bounces reçus
pour faire le tri... Utiliser donc les headers de la fonction mail() pour
spécifier une adresse de retour valide.

De toutes façons, sans adresse de retour, mail() doit utiliser une adresse
par défaut (du genre ) qui a toutes les chances
d'être refusée par le serveur SMTP destinataire ou rejetée par les filtres à
spam.

-- J.D.