8797 sujets

Développement web côté serveur, CMS

Bonjour à tous,

J'ai reparaméreé mon php.ini en donnant les coordonnées de mon hébergeur et son port :



[mail function]
; For Win32 only.
SMTP = auth.smtp.1and1.fr
smtp_port = 587


J'ai bien sûr redémarré EasyPhp pour qu'il prenne en compte le fichier ini (j'ai même redémarré le pc en fait). J'ai contrôlé que ma modif soit bien inscrite dans php.ini ce qui est le cas. Bon !

J'envoie un mail avec la fonction mail et php me répond :



Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in d:\easyphp1-8\www\projet1\config\fonctions.php on line 28
 


C'est à dire qu'il reste sur l'ancienne config : localhost et port 25.

J'ai cherché dans le fichier ini où pouvait bien se trouver ce 'localhost' mais rien...

Quelqu'un aurait une idée ?

Merci à tous surtout que c'est assez urgent.
Il te faut un programme d'envoi de mail (smtp) installé en local pour pouvoir utiliser la fonction mail() sous windows ; changer le php.ini n'y changera rien.

cf l'aide de la fonction mail() sur php.net

a écrit :
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.


MTA = Mail Transfert Agent
Merci de ta prompte réponse.

J'ai à peu près tout compris et je t'en remercie.

Juste une question : en fonction du message que me renvoie EasyPhp, peut-on dire que, lorsque je l'aurai installé sur mon hébergeur, il devrait fonctionner normalement ? Car en fait, il ne signale pas d'erreur de script ou de fonction, non ?
whombat a écrit :
peut-on dire que, lorsque je l'aurai installé sur mon hébergeur, il devrait fonctionner normalement ? Car en fait, il ne signale pas d'erreur de script ou de fonction, non ?


A priori oui ; je n'ai jamais eu à toucher quoique ce soit en utilisant la fonction mail() une fois sur une machine distante (mais de là à en faire une généralité...).
Modifié par PiR2 (19 Dec 2008 - 14:15)