Lors d'un développement informatique, tester l'envoi des mails peut s'avérer périlleux. Pour éviter toute mauvaise manipulation et notamment l'envoi de données de tests à des destinataires sensés être les "réels", il existe des modules permettant de capturer les mails envoyés. Après MailCatcher, découvrons MailDev.

Dans un précédent article, nous avons vu comment installer et utiliser MailCatcher. Ici, MailDev fonctionne grossièrement de la même manière, sauf que ce n'est pas un paquet Ruby mais NodeJS.

Du coup, l'installation est plus simple (installez au préalable nodejs) :

npm install -g maildev

Pour lancer MailDev, rien de compliqué :

maildev

Cela va avoir pour effet de lancer un serveur SMTP sur votre machine, accessible via le port 1025. Une interface graphique (webmail simpliste) est disponible sur le port 1080 (http://127.0.0.1:1080).

Si vous utilisez WAMP, vous allez devoir modifier la configuration SMTP de PHP. Pour cela, ouvrez votre php.ini (clic sur l'icône WAMP, PHP, php.ini) et modifier les deux lignes suivantes :

  • SMTP = 127.0.0.1
  • smtp_port = 1025

N'oubliez pas de redémarrez WAMP après avoir enregistré le fichier.

Exemple d'utilisation

Dans cet exemple simple, nous allons utiliser la fonction mail() de PHP pour tester la capture du mail envoyé.

<?php
mail('contact@une-societe.fr', 'Test pour MailDev', 'Un exemple d\'utilisation pour MailDev', 'From: noreply@autre-societe.fr');
?>

Après envoi du mail, le webmail MailDev nous informe d'un nouveau mail :

Dans cette interface, vous pouvez consulter le mail au format HTML ou PlainText mais aussi les entêtes (headers) et la source.

De plus, vous pouvez modifier le viewport pour tester le Responsive et également télécharger le mail au format EML via un bouton.

Conclusion

MailDev est un outil que je lance pratiquement tous les jours. Il me permet de tester mes envois de mails tout en étant certain qu'ils ne finiront pas chez le "vrai" destinataire et sans changer la configuration du site.