Tester les notifications par e-mail depuis ta propre application pose un problème récurrent : si l'application envoie des e-mails via un vrai serveur SMTP, tôt ou tard, une faute de frappe dans les données de test ou un oubli de changement d'environnement fera qu'une réinitialisation de mot de passe de test ou une facture sera envoyée dans la boîte de réception d'un vrai client. Mailtrap résout ce problème dans le cloud, mais avec un abonnement qui augmente avec le nombre d'e-mails envoyés. Mailpit est un SMTP catcher open source que tu installes sur ta propre Box, il intercepte chaque message envoyé via SMTP depuis ton application et l'affiche dans un panneau web, sans limite du nombre d'e-mails et sans frais mensuels. Voici comment installer Mailpit sur Saplo, étape par étape.
Pourquoi Mailpit plutôt qu'une vraie boîte de réception ou Mailtrap
Tester des e-mails sans intercepteur dédié se fait généralement de deux manières, et les deux ont leurs inconvénients :
- Envoyer à une vraie boîte de réception de test : cela fonctionne, jusqu'à ce que quelqu'un confonde une variable d'environnement ou l'adresse du destinataire dans les données de test, et que l'e-mail de test atterrisse là où il ne devrait pas.
- Mailtrap et services cloud similaires : ils résolvent ce problème, mais ils sont payants, et la limite du nombre d'e-mails interceptés dans le plan gratuit s'épuise plus vite que l'équipe ne termine ses tests.
Mailpit fonctionne comme un conteneur Docker unique sur ta Box, de sorte que chaque e-mail envoyé via SMTP depuis l'application est intercepté localement, sans limite de messages et sans risque que quoi que ce soit ne parte vers un vrai destinataire.
Mailpit, Mailtrap et MailHog
Mailpit est le successeur direct de MailHog, un projet qui n'a pas été développé depuis longtemps. La question naturelle est donc de savoir en quoi il diffère des deux autres :
- Mailtrap est un service cloud avec une limite gratuite du nombre d'e-mails interceptés par mois. C'est pratique car tu n'as rien à installer, mais c'est payant pour un trafic de test plus important et tes données sont stockées chez un fournisseur externe.
- MailHog est un ancien projet avec un rôle très similaire, mais sans développement actif depuis des années, ce qui signifie qu'il ne reçoit plus de corrections ni de nouvelles fonctionnalités.
- Mailpit combine les avantages des deux : il est activement développé comme MailHog l'était autrefois, et tu l'installes sur ta propre Box, comme Mailtrap, sans limite du nombre d'e-mails et sans frais pour le trafic de test.
Si ton équipe teste de nombreuses notifications par e-mail et souhaite en avoir le contrôle total, sans limite de plan gratuit et sans attendre un projet mort, Mailpit est la meilleure solution.
Exigences
Pour installer Mailpit sur Saplo, tu as besoin de :
- Une Box avec Docker activé (le moteur l'active automatiquement lors de l'installation depuis le catalogue, la virtualisation imbriquée dans le conteneur est requise, ce que Saplo propose par défaut),
- Un minimum de 256 Mo de RAM libre sur la Box et 2 Go d'espace disque, le plan Box S à 27 € par an est donc suffisant,
- D'un domaine ou sous-domaine
*.saploapp.plinclus dans le prix de chaque plan, où le panneau d'aperçu des e-mails sera hébergé, - Tu N'AS PAS besoin de créer une base de données séparée - Mailpit stocke les e-mails interceptés dans son propre fichier SQLite dans le volume de données.
Installation étape par étape
- Dans le panneau Saplo, va dans Catalogue d'applications et sélectionne Mailpit (catégorie "Outils").
- Indique la Box avec un minimum de 256 Mo de RAM disponible sur laquelle le "catcher" sera installé, ainsi que le domaine ou le sous-domaine sous lequel le panneau fonctionnera.
- Valide l'installation. Le moteur déploie un conteneur à partir de l'image officielle
axllent/mailpit, génère un port SMTP aléatoire et expose le panneau web uniquement sur le loopback de la Box, connecté à Nginx, qui le sert sous le domaine indiqué avec un SSL gratuit. Seul le panneau est exposé à l'extérieur, le port SMTP reste disponible uniquement localement sur la Box. - Après
docker compose up, le moteur vérifie que le panneau répond bien via HTTP avant de considérer l'installation comme terminée. - Les données de connexion SMTP pour les autres applications sur la même Box (hôte, port) sont enregistrées dans le fichier
MAILPIT-SETUP.txtdans le répertoire de l'application.
Première configuration
Mailpit, contrairement à Chatwoot ou Directus, n'a pas de compte ou de connexion au panneau d'administration - c'est un bac à sable pour les tests, pas une vraie boîte mail, donc le panneau est ouvert immédiatement après l'installation.
- Accède à l'adresse du domaine, par exemple
poczta-test.saploapp.pl, et tu verras une liste vide d'e-mails interceptés, prête pour le premier message. - Dans la configuration SMTP de ton application (WordPress, Django, Node) sur la même Box, entre l'hôte
127.0.0.1et le port spécifié dans le fichierMAILPIT-SETUP.txt- le nom d'utilisateur et le mot de passe peuvent être n'importe lesquels, Mailpit accepte toutes les informations d'identification. - Envoie un e-mail de test depuis l'application, par exemple une réinitialisation de mot de passe ou une notification de commande, et actualise le panneau Mailpit - le message apparaîtra dans la liste avec un aperçu du contenu HTML et textuel ainsi que des pièces jointes.
- Chaque e-mail intercepté peut être ouvert, tu peux vérifier les en-têtes SMTP et voir à quoi il ressemble dans un client de messagerie, sans risque que quoi que ce soit n'atteigne un vrai destinataire.
- Aucun e-mail intercepté par Mailpit n'est envoyé plus loin - c'est exclusivement un aperçu local à des fins de test.
Mailpit sur Saplo vs. Mailtrap et MailHog
| Mailtrap Cloud | MailHog | Mailpit sur Saplo | |
|---|---|---|---|
| Limite du nombre d'e-mails | Oui, dans le plan gratuit | Aucune | Aucune |
| Développement actif | Oui | Non | Oui |
| Où est stocké le contenu des e-mails interceptés | Sur le serveur du fournisseur | Sur ton propre serveur | Sur ta Box |
| Coût | Abonnement après dépassement de la limite | Coût de ton propre serveur | Coût de la Box elle-même |
Questions fréquentes
Est-ce que Mailpit envoie des e-mails à de vrais destinataires ? Non, chaque e-mail envoyé via SMTP à Mailpit est uniquement intercepté et affiché dans le panneau, il n'atteint jamais le vrai destinataire.
Doit-on fournir de vraies informations de connexion SMTP dans l'application ? Non, Mailpit accepte n'importe quel nom d'utilisateur et mot de passe, car il s'agit uniquement d'intercepter des envois de test, pas un vrai serveur de messagerie.
En quoi Mailpit est-il différent de MailHog, puisqu'ils font la même chose ? Mailpit est le successeur activement développé de MailHog, un projet qui ne reçoit plus de mises à jour depuis longtemps.
Mailpit est-il adapté à l'envoi en production ? Non, c'est uniquement un bac à sable pour les tests - pour les envois réels, une boîte e-mail séparée ou un service transactionnel est nécessaire.
Si l'équipe teste les notifications par e-mail de sa propre application et souhaite s'assurer qu'aucun e-mail de test n'atteigne un vrai client, écris-nous, nous t'aiderons à choisir le Box adapté à ton équipe.
- #DevOps
- #Mailpit
- #Guide
- #SMTP
- #Tests
