Maildev : interceptez, testez et visualisez les emails envoyés par votre serveur de dev

Si vous développez un site ou une appli web, vous êtes forcément confronté, à un moment ou à un autre, à devoir tester ou vérifier les emails de notification qui en émanent. Pour ce faire, il existe un superbe outil qui intercepte tous les emails envoyés depuis votre serveur de développement.

 

Qu’est ce que MailDev ?

MailDev est un serveur SMTP couplé à une interface Web (franchement jolie qui plus est) qui intercepte les emails émanant de votre serveur Web afin de les visualiser et les tester. Les emails interceptés n’étant pas délivrés, vous n’aurez plus à modifier les adresses de destinataires lors de vos tests. 🙂

MailDev dispose de nombreuses fonctionnalités vraiment très pratique. Vous en trouverez le détail sur le site de l’éditeur : https://maildev.github.io/maildev/.

Personnellement, les fonctionnalités que j’apprécie particulièrement sont :

  • simplicité de mise en place de l’outil
  • interface web claire et épurée
  • dès qu’un email est intercepté, un indicateur apparaît dans l’onglet (cf. fin du billet)
  • visualisation du header complet des emails en un clic
  • possibilité de tester la « responsivité » des emails
  • passage de la version HTML à Plain Text d’un clic

 

Bon, c’est bien beau tout ça, mais comment ça s’installe ?

L’installation de cet outil est d’une facilité déconcertante.

Commencez tout d’abord par installer Node.js si ce n’est déjà fait.

Ouvrez ensuite votre console (Cmder) et installez MailDev via la commande suivante :

npm install -g maildev

 

Le script d’installation m’a signalé des erreurs pendant son processus. Malgré cela, l’outil fonctionne parfaitement. Donc, si vous constatez des erreurs lors de l’installation, pas de panique. J’avoue que je n’ai pas vraiment pris le temps de creuser le pourquoi du comment de ces erreurs.

Une fois installé, ne reste plus qu’à le lancer :

MailDev

 

Vous pouvez maintenant vous connecter à son interface web : localhost:1080

Interface Web de MailDev

 

C’est joli, non ? ^^

Maintenant que MailDev est installé et fonctionnel, il va falloir indiquer à votre appli (via votre framework) ou à votre serveur Web (via le fichier php.ini) l’adresse du serveur SMTP de MailDev.

Personnellement, j’ai modifié le php.ini de mon serveur de développement (WAMP) :

[mail function]
SMTP = localhost
smtp_port = 1025

 

Voilà, désormais, chaque email qui partira de votre localhost sera intercepté par MailDev :

Notification MailDev

 

Et le tour est joué !

 

Source : http://www.grafikart.fr/tutoriels/divers/maildev-tester-emails-595

31 commentaires

Bonjour,

Navré pour le délai de réponse. À ma connaissance, il n’est pas possible de créer une adresse email avec Maildev. Ce n’est pas la fonction de cet outil.

Comme l’indique mon billet, MailDev est un serveur SMTP couplé à une interface Web (franchement jolie qui plus est) qui intercepte les emails émanant de votre serveur Web afin de les visualiser et les tester. Les emails interceptés n’étant pas délivrés, vous n’aurez plus à modifier les adresses de destinataires lors de vos tests. 🙂

Bonjour Goms,
Avez vous trouvé une solution pour envoyer un email en local avec mailDev et PHP. Pour moi, l’interface web de maildev fonctionne à merveille mais elle est toujours vide. J’ai essayer de changer le port pas mal de fois ainsi que j’ai changé le host de SMTP de 0.0.0.0 à 127.0.0.1. Mais malheureusement, rien ne change. Toujours le INBOX est vide malgrès que quand j’éxécute la fonction mail() de PHP, elle retourne true.

Merci pour ce tuto, j’avais suivi celui de grafikart avant, mais le maildev était défectueux.
J’avais bien installé Maildev et bien configuré mon php.ini mais rien n’y faisait.
Solution : Installer une version antérieure de maildev : g- maildev@1.0.0-rc2
Par la suite j’ai lancé maildev et nickel aucun souci.

Si ça peut aider 🙂

Hello,
Merci Tristan
Mon maildev fonctionne enfin.
Effectivement la dernière version ne fonctionne pas avec la config indiquée sur les tutos trouvé sur le net.
avec la version que tu mentionne cela fonctionne, mais… il faut encore modifier 1 petit truc mentionner nul par.
Pour install une old version, j’ai simplement écrasé l’ancienne en réinstallant.
npm install -g maildev@1.0.0-rc2

En fait lors du démarrage de mailDev nous voyons qu’il se lance sur
0.0.0.0:1080 pour l’interface web
0.0.0.0:1025 pour le SMTP
Il faut donc remplacer 0.0.0.0 par localhost dans le fichier index.js qui se trouve dans:
C:\Users\XXXX\AppData\Roaming\npm\node_modules\maildev
Puis relancer mailDev
Ne pas oublier de modifier le port 25 par 1025 dans votre php.ini et
Restart serveur PHP (wamp)

Merci à tous pour vos tutos
(windows 7 / 64 bits / wamp2.5 avec PHP 5.5.12)

Petite clarification sur un mot utilisé dans mon autre message.
Quand je dis « l’ancienne version » c’est que j’avais déjà installé maildev@1.0.0-rc2, donc dans ma petite tête « LA Dernière version » installée automatiquement par npm était déjà « ancienne »
Toute mes excuses pour la confusion.
La version rc2 fonctionne nikel

Hello,

merci pour le tuto, j’ai installé mailDev (version 1.0.0-rc3), bien configuré mon php.ini mais je ne reçois rien ??

Je bosse sous OSX. Je vois dans le commentaire du dessus qu’on peut installer une version antérieur, mais comment fait-on puisque l’installation est automatique ?

Si une bonne âme peut venir à mon secours ??

j’ai essayé maildev mais ce fonctionne pas chez moi. j’aimerais savoir si en installant d’autres versions ca pouvait fonctionné?? Si oui comment fait-on??

Bonjour, ai fait toutes les manipulations mentionnées plus haut mail lorsque je vais sur mon local host et que je lance pour accéder a maildev je n’arrive a y acceder

Bonjour Juan je n’ai aucun message d’erreur lorsque je lance maildev en ligne de commande on me spécifie que maildev est sur le http//:0.0.0.0:1080 et de même pour le port. Lorsque j’y entre sur mon navigateur maildev s’exécute normalement mais n’intercepte pas mes mails envoyés

De plus malgré que j’ai modifié le fichier index en remplaçant le 0.0.0.0 par me localhost il me lance toujours maildev sur 0.0.0.0:1080. Je n’arrive vraiment pas a trouver la faille.je te serai vraiment gré de me venir en aide

Je développe avec PHPStorm et pour ce qu’il en est de la version de mon PHP c’est le 7.1.9. J’ai sur le forum de grafikart mais rien. Je ne sais si cela est également du a mon wamp car figure toi que pour pouvoir visualer med pages PHP dans le localhost on m’affiche un message d’erreur comme quoi il réside un problème de connexion du coup j’ai du créé un VirtualHost pour pouvoir accéder a mon répertoire www. Je me demandais si cela n’y serait la cause

Bonjour j’ai fait toutees les configurations requises, jai installés la versions anterieures de maildev mais je n’arrive toujours pas a intercepter les emails. dites moi svp que faire

je suis confronte a la meme situation et je ne n’arrive pas a me connecter sur le Maildev.
Voici le message qui s’affiche sur linvite de commande:

 » Maildev webapp running at http://0.0.0.0:1080
Could not start mail server on 0.0.0.0:1025
Port already in use or insufficient rights to bind port
Recieved shutdown signal, shutting down now………. »

Merci d’avance pour votre aide.

@kass et @Black_viking

Question bête : dans votre fichier httpd.conf, avez-vous bien les lignes :
Listen 0.0.0.0:80
Listen [::0]:80

Aux environs des lignes 72 et 73 ?

@Juan
Mon cher Juan voici ce que j’ai dans mon fichier httpd.conf:
#Listen 12.34.56.78:80
Listen 80

Mais contrairement aux lignes indiquees ci dessus par vous, ils se trouvent a la ligne 50 et 51 chez moi ici.
Je precise que derriere Listen 80 il n’ya pas de #
Merci.

Si le problème vient du port 1025, peut-être qu’en changeant de port ça pourrait fonctionner ?

Pour tester un autre port : maildev -s XXXX

Attention, il faut également mettre à jour le fichier php.ini avec le nouveau numéro de port pour le SMTP.

Bonjour à,

Voilà mon souci : je développe une appli en local et je voudrais tester la fonction mail() de php. Jusque là, c’est assez simple…

Sauf que…

Je n’arrive pas a configurer mon php.ini correctement…

mpossible pour moi de trouver une info correct et constructive afin d’arriver à mes fins… (et j’en ai fait un paquet !)

Je précise que je suis sous environnement linux avec kubuntu…

[edit]

Bonjour,

Bon, mon souci maintenant c’est que maildev ne capte rien ! Ma fonction mail() fonctionne convenablement (retourne true et continue)
mais je n’ai rien dans maildev.

Je développe dans un virtualhost donc est-ce que ce serait pour ça?

Bonjour,

N’ayant jamais été confronté à ce problème, difficile de vous aider…

Avez-vous essayer de lancer maildev en mode « verbose » ? (maildev -v)

Comments are closed.