Aller au contenu
gaetancottrez.dev

Comment tester l'envoi d'e-mails dans son application locale : guide complet pour débutants

Published:le  à 19:15 | (5 min de lecture)
Comment tester l'envoi d'e-mails dans son application locale : guide complet pour débutants

Table des matières

Ouvrir table des matières

La méthode bricolage

Alors, comment faire ? Une méthode que j’ai utilisée pendant longtemps et qui était très bricolage consistait à s’envoyer l’e-mail à sa propre adresse e-mail plutôt qu’au destinataire final.

On définit une variable d’environnement, du genre DEBUG_EMAIL, à true, ainsi qu’une autre variable EMAIL_ADDRESS_DEBUG, qui contient votre adresse e-mail et qui recevra cet e-mail. À chaque fois que l’on envoie un e-mail, on vérifie si notre DEBUG_EMAIL est activé, et si c’est le cas, on remplace tous les destinataires par l’adresse e-mail définie dans EMAIL_ADDRESS_DEBUG.

Même si cette méthode est très simple à mettre en place et fait le job, elle présente de nombreux inconvénients :

C’est un début, mais ce n’est pas idéal. Heureusement, il existe des solutions alternatives plus simples et plus professionnelles, et je vais vous en présenter deux.

MailDev, la solution de fake STMP local

Le principe de MailDev 🔗 est simple : il vous permet d’avoir un faux serveur SMTP. C’est-à-dire qu’il peut intercepter les e-mails envoyés par vos applications, mais ne les relaie jamais aux destinataires finaux.

Il existe plusieurs solutions pour obtenir un serveur SMTP factice en local, mais MailDev dispose d’une interface de webmail assez jolie (oui, il vous en faut une pour visualiser vos tests d’envoi) et il est très simple à mettre en place.

Il est codé en Node.js 🔗, ce qui signifie que si vous ne l’avez pas déjà installé, vous devrez le faire au préalable (pour bénéficier en même temps de NPM 🔗).

Il s’installe donc via une simple commande npm :

npm install -g maildev

Et pour le lancer, il suffit de taper la commande :

maildev;

Rajoutez un -h derrière la commande pour obtenir toutes les options disponibles pour la paramétrer si vous le souhaitez.

Le serveur MailDev utilise deux ports par défaut :

Donc, pour afficher le webmail dans votre navigateur, il suffit de taper http://localhost:1080 🔗.

Pour configurer le SMTP de votre application, il suffit de renseigner les informations suivantes :

Et voilà ! Pensez néanmoins à désactiver la sécurité TLS pour l’envoi de vos e-mails via MailDev.

C’est aussi simple à mettre en place qu’à utiliser.

Le principal avantage de cela, c’est que vous êtes totalement indépendant. Vous pouvez développer sans connexion Internet, et vous pourrez toujours tester vos e-mails. Néanmoins, cela rend compliqué la mutualisation des tests pour une équipe de développeurs (à moins de rendre accessible votre serveur MailDev vers l’extérieur).

Mais j’ai une autre solution alternative à MailDev qui vous permettra de mutualiser vos envois de test sans installation.

Ethereal, le service de fake SMTP

Ce service gratuit est tout simplement génial et très facile d’utilisation. Il suffit de se rendre sur le site Internet de Ethereal 🔗 et de cliquer sur le bouton bleu “Create Ethereal Account” et c’est tout ! Votre compte est créé automatiquement et Ethereal affiche ses informations à l’écran (notez-les bien, car vous n’aurez aucun moyen de les récupérer. Vous serez obligé de créer un nouveau compte).

En plus des informations de connexion en mode SMTP, IMAP et POP3, vous avez des exemples de codes pour utiliser ses informations, mais globalement vous devez renseigner comme informations :

Vous aurez la possibilité de vous connecter avec votre nom d’utilisateur et votre mot de passe pour accéder à un webmail (beaucoup moins joli que MailDev). Je n’utilise pas personnellement le webmail. Je préfère renseigner les informations d’Ethereal directement dans mon client de messagerie, comme une vraie adresse e-mail, car je trouve cela plus pratique.

Le principal inconvénient (qui peut ne pas en être un pour certains), c’est que ce service vide totalement les boîtes e-mail chaque jour. Donc si vous avez effectué des tests d’e-mails aujourd’hui, vous ne pourrez les consulter qu’aujourd’hui. Mais on ne va pas se plaindre pour un service gratuit.

Un autre inconvénient est que vous devez avoir une connexion Internet active pour utiliser le SMTP (cela va de soi).

Mais un avantage non négligeable est que vous pouvez utiliser cette solution tant en local dans votre phase de développement que lors de vos tests sur votre phase de staging.

Alors, au final quelle solution choisir ?

Je pense que ce sera surtout une question de goût, car les deux solutions se valent tout autant. Personnellement, j’utilise Ethereal quasiment exclusivement depuis que je l’ai découvert. Plus rapide et plus facile à mettre en place (même si MailDev l’est tout autant).

Vous pourriez aussi aimer

Mon environnement de travail en tant que Web Developer

Mon environnement de travail en tant que Web Developer

Github Copilot : Mon avis après 2 mois d'utilisation

Github Copilot : Mon avis après 2 mois d'utilisation

Article précédent
Rendre accessible facilement son localhost sur internet avec Ngrok
Article suivant
Comment apprendre la programmation efficacement ?