Guide de déploiement

Mailpit : serveur SMTP de test auto-hébergé sur votre VPS

Déployer sur un VPS Cloud →

Self-hosting5 min de lecture

Mailpit : serveur SMTP de test auto-hébergé sur votre VPS

Mailpit est le successeur officieux de MailHog : un serveur SMTP de test qui capture chaque e-mail envoyé par votre application et l'affiche dans une interface web moderne, sans jamais le délivrer à un vrai destinataire. Avec la recherche plein texte, la notation anti-spam, les vérifications de compatibilité HTML et une API REST pour vos pipelines CI, Mailpit s'impose comme l'outil de référence pour les équipes qui testent leur code d'envoi d'e-mails. Ce guide vous montre comment le déployer en moins de deux minutes sur votre VPS.

Pourquoi remplacer MailHog par Mailpit

MailHog est le serveur SMTP de test que l'on trouvait partout il y a cinq ans. Mais il n'est plus maintenu depuis 2020 et porte une faille XSS stockée non corrigée (Exploit-DB 50971) : n'importe quel e-mail contenant du JavaScript peut compromettre l'interface. Mailpit le remplace avec un binaire Go moderne (moins de 50 Mo de RAM), une interface épurée, la recherche plein texte, une API REST documentée, un rapport de compatibilité HTML et la notation anti-spam intégrée. Il est installé par défaut dans Laravel Sail depuis la version 11 et dans DDEV depuis la version 1.22, ce qui en fait le nouveau standard du secteur.

Ce que Mailpit apporte en pratique

  • Capture SMTP sur le port 1025 — aucun e-mail ne quitte votre VPS, configurez simplement votre application sur localhost:1025.
  • Interface web sur le port 8025 avec recherche plein texte sur l'objet, l'expéditeur et le corps.
  • API REST GET /api/v1/messages — interrogez les e-mails depuis vos tests d'intégration sans aucun relais externe.
  • Notation anti-spam avec les règles SpamAssassin — détectez les problèmes de délivrabilité avant la production.
  • Rapport de compatibilité HTML — repérez les propriétés CSS qui seront supprimées par Gmail, Outlook ou Apple Mail.
  • Aperçu mobile et vue source brute, avec rendu HTML complet et entêtes détaillées.
  • Interface POP3 pour récupérer les e-mails capturés avec n'importe quel client mail.
  • SQLite sur un volume persistant — les messages survivent aux redémarrages du conteneur.

Architecture de déploiement sur VPS

Mailpit tourne dans un seul conteneur Docker. Le serveur SMTP est accessible sur localhost:1025 (loopback uniquement), ce qui signifie que seules les applications qui tournent sur le même VPS peuvent lui envoyer des e-mails — exactement ce qu'on veut. L'interface web est exposée sur localhost:8025 puis proxifiée par nginx vers le domaine de votre choix. Ce schéma est identique à celui de Node-RED, Plausible ou Umami : un conteneur, un port loopback, un domaine nginx, un volume persistant.

Déployer Mailpit en 5 étapes

01

Déployer depuis la marketplace ServOrbit

Ouvrez votre panneau de contrôle, allez dans Marketplace → Développement → Mailpit et cliquez sur Déployer. Le conteneur démarre en moins de dix secondes.

02

Configurer le SMTP de votre application

Dans vos variables d'environnement, définissez MAIL_HOST=127.0.0.1 et MAIL_PORT=1025. Aucune authentification, aucun TLS requis par défaut. Laravel, Symfony, Django, Node.js — tous supportent cette configuration nativement.

03

Accéder à l'interface web

Naviguez vers le domaine attaché à votre instance Mailpit. Vous verrez la boîte de réception en temps réel : cliquez sur n'importe quel e-mail pour inspecter son rendu HTML, ses entêtes et son score anti-spam.

04

Intégrer l'API REST dans vos tests

Appelez GET https://mailpit.votre-domaine.com/api/v1/messages depuis votre suite de tests. Filtrez par destinataire, vérifiez l'objet, comptez les pièces jointes — le tout sans mock ni stub.

05

Vérifier la compatibilité HTML

Ouvrez un e-mail HTML et cliquez sur l'onglet Compatibilité. Mailpit liste les propriétés CSS non prises en charge client par client, avec des liens vers les correctifs recommandés.

Mailpit en CI/CD : tester les e-mails dans le pipeline

Déployez Mailpit en service dans votre docker-compose.yml de test (image: axllent/mailpit:latest, ports: 127.0.0.1:8025:8025 et 127.0.0.1:1025:1025). Vos tests d'intégration envoient des e-mails vers localhost:1025, puis vérifient via l'API REST que le bon message a été reçu. Ce pattern est utilisé par les équipes Laravel, Symfony et Django pour valider les notifications et les e-mails transactionnels sans relais externe.

Mailpit vs MailHog vs Mailtrap

MainteneurAxle Springer (actif)Abandonné depuis 2020Mailtrap Inc. (SaaS)
SécuritéAucune faille connueXSS stockée non corrigéeSaaS — données hébergées ailleurs
API RESTComplète et documentéeBasique, non documentéeOui (plan payant)
Notation anti-spamIntégrée (SpamAssassin)AbsenteOui (plan payant)
Compatibilité HTMLRapport intégréAbsenteOui (plan payant)
PrixGratuit, MITGratuit, MITFreemium, puis 24 $/mois
Auto-hébergementUn conteneur DockerUn binaire GoSaaS uniquement

Cas d'usage avancés

Au-delà du simple test d'envoi, Mailpit offre plusieurs fonctionnalités peu connues. Le mode multi-tenant (--mp-tenant) permet de séparer les e-mails par application dans un seul serveur. L'authentification SMTP (MP_SMTP_AUTH_FILE) permet de restreindre qui peut se connecter. La variable MP_UI_AUTH_FILE ajoute une authentification basique sur l'interface web si vous l'exposez publiquement. Et la rétention configurable (MP_MAX_MESSAGES=0 pour illimitée, ou un nombre précis) vous permet d'ajuster la politique de conservation selon vos besoins de test.

Déployez Mailpit en un clic sur ServOrbit

Avec un VPS ServOrbit Cloud, Mailpit est disponible directement dans la marketplace. Configurez votre SMTP de test en deux minutes, sans serveur séparé à gérer.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.