Envoyer des mails en local avec Wamp

Posté le 20 novembre 2011 - Astuces pour développeurs - Par Grafikart - Proposer une correction

Si vous aussi vous développez vos sites en local sur Windows avec Wamp vous avez du vous rendre compte que la solution n'intègre pas l'envoi d'email. Aussi dès que vous testez un script contenant la fonction mail() vous tombez irrémédiablement sur une erreur.

Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in ........

Rassurez vous, tout n'est pas perdu, il est tout à fait possible d'envoyer des mails en local avec Wamp grâce à Fake Sendmail.

Comment ça s'installe ?

L'installation de Fake Sendmail est relativement simple. Pour commencer téléchargez Fake Sendmail et déposez le dans un dossier spécifique de votre système (je l'ai mis dans le dossier contenant Wamp C:\Wamp\sendmail.
Sendmail.exe est une commande qui émule la commande unix sendmail et qui nécessite un serveur smtp pour fonctionner. Il va donc falloir éditer le fichier sendmail.ini pour configurer le serveur SMTP qui va envoyer nos mails. Voici ce que ça donne si vous voulez passer par un compte gmail :

[sendmail] 
smtp_server=smtp.gmail.com 
smtp_port=587 
default_domain=gmail.com 
error_logfile=error.log 
auth_username=********@gmail.com 
auth_password=****** 
pop3_server= 
pop3_username= 
pop3_password= 
force_sender=****@gmail.com 
force_recipient= 
hostname=

Penser à remplacer les * par vos informations.

Où trouver php.ini

Maintenant il va falloir dire à php d'utiliser cette commande sendmail. Pour cela vous devez éditer le fichier php.ini et chercher la variable sendmail_path pour y indiquer le chemin vers l’exécutable sendmail.exe. Par exemple chez moi :

sendmail_path = "C:\wamp64\sendmail\sendmail.exe"

Ensuite il ne vous reste plus qu'à redémarrer Wamp et vous devriez être en mesure d'envoyer vos mail en local.

 

Au secours ça ne marche pas !

  1. Wamp ne redémarre pas
    Si c'est le cas essayer de regarder au niveau de vos fichiers de logs  (PHP Error log) si vous n'avez pas fait une erreur en éditant le fichier de configuration de php.
  2. Wamp n'envois aucun mail
    Vous venez de tester votre fonction mail et vous ne voyez aucun mail arriver dans votre boîte mail (même dans les spams). Dans ce cas là vous avez sûrement fait une erreur dans la configuration du serveur SMTP de sendmail. Comme d'habitude il faut regarder dans les logs, sendmail génère son propre log d'erreur "error.log" que vous trouverez dans le dossier de sendmail.