Académique Documents
Professionnel Documents
Culture Documents
Comment Utiliser Mailhog
Comment Utiliser Mailhog
Tester des e-mails dans un environnement de développement local peut être difficile. Il est
très difficile de savoir si les e-mails sortants de votre site ou de votre application web
atteignent réellement la boîte de réception du destinataire. Entrez dans MailHog !
MailHog est un outil de test d’e-mail qui permet d’installer et de configurer très facilement un
serveur d’e-mail local. MailHog met en place un faux serveur SMTP. Vous pouvez configurer
vos applications web préférées pour utiliser le serveur SMTP de MailHog pour envoyer et
recevoir des e-mails.
Par exemple, vous pouvez configurer un site WordPress local pour qu’il utilise MailHog pour
envoyer des e-mails. C’est exactement ce que fait DevKinsta pour propulser son serveur
SMTP intégré afin de tester les e-mails en local.
Dans cet article, vous apprendrez les tenants et aboutissants de MailHog, y compris son
installation, sa configuration, comment tester les e-mails en local, et bien plus encore !
— UI web MailHog
MailHog est un outil de test de-mail open source destiné principalement aux développeurs. Il
vous permet de tester plus efficacement les capacités d’envoi et de réception d’e-mail de
votre application web.
Construit avec le langage de programmation Go, MailHog peut être utilisé sur plusieurs
systèmes d’exploitation, dont Windows, Linux, FreeBSD et macOS. MailHog est maintenu par
Ian Kent et publié sous la licence du MIT, ce qui vous permet de le déployer librement pour
des utilisations personnelles et commerciales.
Généralement, le serveur SMTP par défaut de l’application web se charge de cette tâche.
Dans un environnement de développement local, il ne fonctionne presque jamais pour de
multiples raisons.
Vous pouvez lire notre guide détaillé sur les serveurs SMTP gratuits pour en savoir plus sur le
fonctionnement d’un serveur SMTP.
Tout d’abord, vous devez configurer votre système d’exploitation, votre serveur web et votre
application web pour permettre l’envoi d’e-mails dans un environnement local. Ensuite, vous
devez vous assurer que les e-mails arrivent bien dans la boîte de réception de votre
destinataire, ce qui peut vous faire perdre du temps.
Et puis il y a la question de l’utilisation d’une véritable adresse e-mail pour les tests. Cela peut
nuire à la crédibilité de votre e-mail privé.
MailHog résout tous les problèmes mentionnés ci-dessus. Il met en place un faux serveur
SMTP que vous pouvez configurer pour que votre application web puisse envoyer et recevoir
des e-mails. Il stocke même les e-mails envoyés et reçus dans une interface utilisateur web
très pratique, de sorte que vous pouvez les parcourir comme vous le feriez avec une vraie
boîte de réception.
Enfin, MailHog vous permet également de récupérer ces e-mails grâce à une API pour des
tests automatisés. C’est une fonction puissante, et la façon dont vous utilisez l’API dépend de
vous.
Fonctionnalités de MailHog
MailHog est équipé de nombreuses fonctionnalités prêtes à l’emploi. Voici quelques-unes de
ses principales fonctionnalités :
Léger et portable : Vous n’avez pas besoin d’installer MailHog pour l’utiliser. C’est l’un
des principaux avantages de MailHog. Cela le rend très portable pour l’utiliser sur
presque tous les systèmes d’exploitation ou serveurs web.
Support SMTP étendu : Non seulement MailHog supporte la mise en place d’un faux
serveur SMTP, mais vous pouvez également l’utiliser pour mettre en place un serveur
ESMTP (Extended SMTP). Il comprend également le support pour SMTP AUTH et
PIPELINING.
Support d’API : Vous pouvez utiliser l’API HTTP intégrée de MailHog (ou l’API JSON)
pour récupérer, lister et supprimer des e-mails.
Test d’échec : Vous pouvez inviter Jim, le Singe du Chaos de MailHog (oui, c’est bien
son nom) à la fête pour tester la délivrabilité de votre application web. Pour ce faire, il
crée de manière aléatoire des problèmes courants de délivrabilité d’e-mail, tels que les
connexions/authentifications rejetées et les connexions limitées.
Mises à jour en temps réel : MailHog utilise l’interface web EventSource pour fournir
des mises à jour instantanées.
Capture et stockage des e-mails : Les e-mails capturés peuvent être stockés dans un
système de stockage de messages en mémoire et persister dans une base de données
MongoDB et un système de stockage basé sur des fichiers.
Télécharger les fichiers jointes : MailHog prend en charge le téléchargement de
parties MIME individuelles.
UI Web : Vous pouvez utiliser l’interface web de MailHog pour visualiser les e-mails en
texte brut, en HTML ou la source. Elle prend également en charge le format MIME en
plusieurs parties et les en-têtes codés.
Authentification : MailHog prend en charge l’authentification HTTP basique pour son
interface utilisateur et son API.
Libérer les e-mails capturés : Vous pouvez configurer MailHog pour libérer les e-mails
capturés vers de véritables serveurs SMTP en vue de leur distribution.
Tout d’abord, rendez-vous sur la page des versions de MailHog sur GitHub pour télécharger
sa dernière version stable pour Windows. Après avoir.
Note : Au moment de la rédaction de cet article, MailHog 1.0.1 est la dernière version
disponible. Vous pouvez la télécharger pré-compilée pour les plateformes Windows, Linux et
Darwin (macOS). Si vous utilisez une plateforme de niche, vous pouvez également
télécharger son code source et le compiler pour votre cas d’utilisation spécifique.
Comme MailHog pour Windows est un simple programme auto-exécutable, vous pouvez
simplement exécuter le fichier .exe téléchargé. Si vous recevez des alertes de sécurité,
assurez-vous d’autoriser MailHog à s’exécuter sur votre environnement local sans restrictions
de pare-feu.
Vous pouvez voir que le serveur SMTP se trouve sur le port 1025 et le serveur HTTP sur le
port 8025.
Rien de bien compliqué encore, mais cela confirme que MailHog fonctionne sur votre
système.
Vous ne pouvez pas encore trouver d’e-mail dans cette liste, car nous n’avons configuré
aucune de nos applications web pour utiliser MailHog. Nous en parlerons plus loin dans cet
article.
Si vous utilisez Linux (Ubuntu/Debian), voici comment vous pouvez déployer MailHog :
Ensuite, vous pouvez lancer /path/to/MailHog sur votre terminal pour démarrer MailHog.
Le chemin exact peut varier en fonction de votre version de Linux. Comme les fichiers bin de
Go sur Ubuntu sont stockés dans le répertoire ~/go/bin/, vous pouvez exécuter le code ci-
dessous pour démarrer MailHog :
~/go/bin/MailHog
C’est à peu près tout. MailHog fonctionne maintenant sur votre machine Linux. Voici à quoi
cela ressemble.
Les utilisateurs d’Apple peuvent installer MailHog en utilisant Homebrew. Ouvrez votre
terminal et exécutez la commande suivante :
Cela permettra d’installer MailHog sur votre macOS. Ensuite, vous pouvez démarrer MailHog
avec :
mailhog
C’est à peu près tout. MailHog est maintenant installé sur votre macOS. Vous pouvez
consulter son interface web en vous rendant sur 127.0.0.1:8025 ou localhost:8025
dans votre navigateur.
Docker est l’un des moyens les plus simples de mettre en place MailHog sur n’importe quelle
plateforme.
Tout d’abord, assurez-vous que Docker est bien installé sur votre machine. Ensuite, vous
pouvez lancer MailHog directement à partir de Docker Hub en exécutant la commande
suivante:
Alternativement, si vous voulez monter le Maildir de MailHog sur votre système de fichiers
local (au lieu de le mettre dans un conteneur Docker), vous pouvez lancer la commande
suivante :
Docker Compose est une extension de Docker qui permet de gérer facilement plusieurs
conteneurs Docker avec une seule commande. Pour cela, vous devez définir tous les
conteneurs que vous souhaitez exécuter dans un fichier YAML.
Par défaut, Docker Compose vous demande de nommer ce fichier comme ceci: docker-
compose.yaml.
Pour faire fonctionner MailHog avec Docker Compose, voici à quoi doit ressembler votre
fichier docker-compose.yaml:
version: "3"
services:
mailhog:
image: mailhog/mailhog:latest
restart: always
ports:
- 1025:1025
- 8025:8025
Dans le dossier où se trouve ce fichier, exécutez la commande suivante pour lancer MailHog
en arrière-plan:
docker-compose up -d mailhog
Cela fonctionne exactement comme avec Docker. Sauf qu’ici, vous n’avez pas besoin de
mentionner beaucoup de directives car vous les avez déjà définies.
En plus des méthodes ci-dessus, le repo GitHub de MailHog comprend également un guide
pour le déploiement de MailHog sur AWS Elastic Beanstalk.
Pour commencer, vous devez télécharger et installer mhsendmail. Selon votre plateforme,
vous pouvez l’aborder de différentes manières.
Par exemple, si vous utilisez Ubuntu, vous pouvez télécharger mhsendmail depuis son
dépôt GitHub en utilisant la commande suivante:
wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsend
Ensuite, rendez ce fichier exécutable et déplacez-le dans votre répertoire utilisateur. Pour ce
faire, utilisez la commande suivante:
Vous pouvez également obtenir mhsendmail sur Golang ou Homebrew en exécutant cette
commande:
go install github.com/mailhog/mhsendmail
Assurez-vous que Go est installé avant d’exécuter la commande ci-dessus. Si vous êtes sous
Linux, reportez-vous à la section MailHog sous Linux ci-dessus. Pour installer Go avec
Homebrew, exécutez la commande suivante:
brew install go
go install github.com/mailhog/mhsendmail
Ensuite, vous devez configurer votre application web pour utiliser mhsendmail de MailHog
comme service de routage d’e-mail. La plupart des systèmes Linux sont configurés pour
utiliser sendmail par défaut.
Vous pouvez le faire en modifiant votre fichier php.ini. Sur la plupart des serveurs, vous
trouverez le fichier php.ini dans le répertoire racine. Vous pouvez également exécuter la
commande suivante pour savoir où il se trouve:
Pour les machines Linux fonctionnant sous Ubuntu, vous devez définir la valeur de
sendmail_path sur :
sendmail_path = /usr/local/bin/mhsendmail
Au lieu de la valeur ci-dessus, vous pouvez également utiliser la valeur indiquée ci-dessous
pour obtenir le même résultat :
Si vous avez utilisé Go pour installer mhsendmail, ou si vous utilisez une autre variante de
Linux, le chemin peut varier légèrement en fonction de votre plateforme/configuration.
Assurez-vous d’avoir un lien vers le répertoire mhsendmail approprié.
Les utilisateurs de Mac doivent modifier leur fichier de configuration Postfix pour configurer
MailHog correctement. Vous pouvez utiliser la configuration Postfix suivante :
myhostname = localhost
relayhost = [127.0.0.1]:1025
Pour les sites WordPress, vous pouvez utiliser l’extension gratuite MailHog for WordPress
pour router les e-mails de votre site vers MailHog. Pour l’utiliser, installez et activez
l’extension dans votre tableau de bord WordPress. Une meilleure alternative est d’utiliser
DevKinsta. Nous y reviendrons en détail plus tard.
Lisez la documentation de MailHog pour savoir comment le mettre en place sur d’autres
platesformes/configurations.
Vous pouvez configurer MailHog en utilisant ses différentes variables d’environnement ou ses
options de ligne de commande.
Par exemple, vous pouvez changer son nom d’hôte par défaut de mailhog.example en un
nom personnalisé en utilisant la variable d’environnement MH_HOSTNAME ou l’option de ligne
de commande -hostname.
Pour plus d’informations, vous pouvez consulter la documentation sur les options de
configuration de MailHog.
Vous pouvez envoyer un e-mail avec CLI depuis Mailhog en utilisant les directives
mhsendmail suivantes:
Hey there,
Missing you pig time.
Dans le code ci-dessus, la directive <<EOF configure un délimiteur personnalisé afin que vous
puissiez saisir les détails de l’e-mail de test de manière interactive dans le terminal. Il exécute
toutes les entrées quand vous saisissez à nouveau le délimiteur. Ici, il envoie un e-mail en
utilisant la commande mhsendmail.
— Envoi d’un courriel de test en utilisant ‘mhsendmail’
Vous pouvez vérifier si l’e-mail a bien été livré en vous rendant sur l’interface utilisateur web
de MailHog.
Vous pouvez également cliquer sur l’e-mail de test pour vérifier son contenu.
— Vérification du contenu du corps de l’e-mail de test
C’est dans la boîte ! Nous pouvons maintenant conclure que MailHog a bien été configuré.
En plus de la méthode ci-dessus, il existe d’autres moyens d’envoyer un e-mail de test. Par
exemple, sous macOS, vous pouvez envoyer un e-mail de test en exécutant la commande
suivante dans votre terminal :
Sous Windows, vous pouvez envoyer un e-mail avec PowerShell en exécutant le code
suivant:
<?php
$to = "test@mailhog.local";
$subject = "Hey, I’m Pi Hog Pi!";
$body = "Hello, MailHog!";
$headers = "From: pihogpi@kinsta.com" . "\r\n";
mail($to,$subject,$body,$headers);
?>
Enfin, vous pouvez utiliser l’API de MailHog pour tester si un e-mail a bien été envoyé. Si
vous travaillez exclusivement dans un environnement non-GUI (par exemple un terminal
Linux ou Windows PowerShell), l’API MailHog est très pratique pour lister, récupérer et
supprimer des e-mails.
Comme pour l’interface Web de MailHog, vous pouvez utiliser la boîte de réception locale de
DevKinsta pour afficher et manipuler les e-mails (supprimer, marquer comme lu, voir la
source).
— Visualiser et manipuler les e-mails dans DevKinsta
Résumé
Avec MailHog, tester les e-mails devient un jeu d’enfant. C’est une solution pratique pour
tester les e-mails de votre site web ou de votre application web. De plus, MailHog est simple
à mettre en place sur presque toutes les plateformes populaires et dispose d’une interface
utilisateur web facile à utiliser.
Avec MailHog (et DevKinsta) à vos côtés, vous constaterez que tester les e-mails en local n’a
jamais été aussi facile.
Si vous souhaitez partager votre expérience ou vos difficultés à tester les e-mails en local,
veuillez nous écrire dans la section des commentaires ci-dessous.