Si vous faites des développements en local et que vous souhaitez tester l’envoi des emails et pour éviter de fausses manipulations ou des envois non souhaités à des contacts réels, vous pouvez utiliser la solution MailDev.
Il s’agit d’un paquet en Node.js qui permet de lancer un service web qui intercepte tous les emails sortants depuis votre machine en localhost pour les afficher depuis une interface web similaire à un webmail dont voici un petit aperçu.
Pour installer cette application rien de plus simple il faudrait lancer la commande npm suivante. Il faut au préalable avoir installé Node.js et l’ajouter dans le path si vous êtes sur une machine tournant sous Windows (vous pouvez trouver pleins de tutoriels dans ce sens).
// N'oubliez pas le sudo si vous êtes sous linux npm install -g maildev
Modifier le fichier php.ini, en changeant :
[mail function] SMTP = localhost smtp_port = 1025
Relancer apache/wamp
Puis lancer tout simplement le service avec la commande
maildev
Vous aurez alors accès depuis votre navigateur à une interface de « webmail » à l’adresse http://127.0.0.1:1080/
Vous pouvez tester le service en envoyant un email depuis un fichier php
mail('contact@test.fr', 'MailDev test', 'Contenu du mail à consulter depuis MailDev', 'From: info@societe.com');
Si pour une raison ou une autre MailDev ne fonctionne pas notamment sur Windows, il se peut que les ports soient bloquées par votre firewall ou votre box. Pour cela vous pouvez lancer une des commandes suivantes pour changer le port bloqué ou bien essayer de débloquer le port en question (1025 ou 1080).
# ici on utilise le port 25 à écouter au lieu de 1025 maildev -s 25 # ici on change le port utilisé pour l'interface web (8888 au lieu de 1080) maildev -w8888
Si vous utilisez une machine virtuelle, il se peut que malgré tout l’interception des emails ne fonctionne pas. Pour remédier à ce problème il faut installer postfix
// Installer postfix (laisser tout par defaut) apt-get install postfix // puis vim /etc/postfix/main.cf // modifier dans main.cf relayhost = 127.0.0.1:1025 // Relancer postfix service postfix restart
Alternatives à Maildev
Sur Windows vous pouvez également utiliser le logiciel Smtp4Dev qui se chargera d’écouter n’importe quel port. Si vous disposez de Ruby, vous pouvez utiliser MailCatcher qui fait exactement la même chose