Aller au contenu
Facteur
ENCommencer

Migration

Migrer depuis Mailpit

Mailpit est gratuit et excellent sur le poste du développeur. Cette page ne cherche pas à vous en détourner : elle décrit ce qui se passe quand les mêmes tests doivent tourner en intégration continue, à plusieurs, et recevoir du courrier venu de l’extérieur.

  • Rien à exploiter : ni serveur, ni supervision, ni mise à jour
  • Des adresses publiques, joignables depuis l’extérieur
  • Comptes, rôles, SSO et quotas partagés entre pipelines

Mailpit est libre, gratuit, démarre en une commande et ne fait sortir aucune donnée de votre machine : sur le poste du développeur, gardez-le. La migration se pose en intégration continue, quand les pipelines doivent partager des boîtes, relire hier, et recevoir du courrier venu de l’extérieur.

La bascule ne traduit aucun SDK : Mailpit s’interroge en HTTP. Elle retire le service à faire tourner à côté de vos tests, et le code à extraire du corps des messages.

Ce qui pousse une équipe à changer

Le courrier vient d’ailleurs que de votre code

Un fournisseur d’identité, une passerelle SMS, un partenaire : dès qu’un message part d’une machine que vous ne contrôlez pas, il lui faut une adresse publique. Un Mailpit sur le réseau de la chaîne d’intégration ne la donne pas sans travaux.

Plusieurs pipelines, les mêmes boîtes

Chaque exécution démarre son conteneur, reçoit ses messages et les emporte en s’arrêtant. Partager une boîte entre deux chaînes, ou relire hier ce qui est arrivé, demande de construire un service : celui que vous vouliez éviter.

Personne ne veut exploiter un serveur de plus

Gratuit ne veut pas dire sans coût : la machine, sa supervision, ses montées de version, et la personne qu’on va chercher le jour où il tombe pendant que la chaîne attend.

Les SMS entrent dans le même outil

Les parcours à code à usage unique passent souvent par SMS. Mailpit ne fait que l’email ; ici, le message texte arrive dans la même inbox et se lit avec le même appel.

Ce que la bascule change

Il n’y a pas de SDK à traduire ici : Mailpit s’installe et s’interroge en HTTP. Ce qui change n’est pas la forme de l’appel, c’est qu’il n’y a plus de service à faire tourner à côté de vos tests, et plus de code à extraire du corps du message.

docker compose + GET /api/v1/messages → messages.waitFor()

docker-compose.ymlMailpit
services:
  mailpit:
    image: axllent/mailpit
    ports: ['1025:1025', '8025:8025']

# puis, dans le test, une fois le service prêt :
#   const r = await fetch('http://localhost:8025/api/v1/messages');
#   const { messages } = await r.json();
#   const code = messages[0].Snippet.match(/\b\d{6}\b/)?.[0];
login.spec.tsFacteur
import { Facteur } from '@facteur-eu/sdk';

const facteur = new Facteur({ apiKey: process.env.FACTEUR_API_KEY });

// Aucun service à démarrer, aucun port à attendre.
const message = await facteur.messages.waitFor({
  inbox: INBOX_ID,
  sentTo: address,
  wait: 30_000,
});

const code = message.otp;

Les chemins de l’API Mailpit sont ceux de sa spécification publique ; les sources sont en bas de page. Rappel : Mailpit est gratuit, et pour du développement local il reste le meilleur choix.

La migration, pas à pas

Il n’y a pas de SDK à traduire : la bascule consiste à retirer un service de la chaîne d’intégration, pas à réécrire des tests.

  1. 1

    Créer un compte et une inbox

    L’inbox est hébergée et ses adresses sont publiques : elle reçoit du courrier de n’importe où, y compris des services que vous ne contrôlez pas : un fournisseur d’identité, une passerelle SMS.

  2. 2

    Retirer le service du compose

    Le conteneur, ses ports et son attente de disponibilité sortent de la chaîne d’intégration. Il n’y a plus rien à démarrer avant les tests, ni à superviser pendant.

  3. 3

    Remplacer l’appel HTTP

    La lecture de /api/v1/messages et le tri du tableau deviennent messages.waitFor(), qui bloque jusqu’à l’arrivée du bon message et rend le code déjà extrait.

  4. 4

    Garder Mailpit en local, si vous y tenez

    Beaucoup d’équipes gardent Mailpit sur le poste de développement et ne migrent que l’intégration continue : les deux usages ne se disputent rien.

La bascule, en synthèse

FacteurMailpit
Coût du logicielAbonnementGratuit, licence MIT
À faire tournerRien, service hébergéUn serveur, sa supervision, ses mises à jour
Partage entre plusieurs pipelinesOui, boîtes communes et cloisonnéesÀ construire vous-même
Réception depuis l’extérieurOui, adresses publiquesRéseau local seulement, sauf exposition manuelle
Rétention et historiqueSelon le plan, 3 à 60 joursCe que vous configurez, sur votre disque
Comptes, rôles, SSOOuiNon
SMSOuiNon, email seulement

Le coût réel

Mailpit ne coûte rien à installer. Ce qu’il coûte est ailleurs : la machine qui le fait tourner, sa supervision, ses montées de version, et le temps de la personne qui s’en occupe le jour où il tombe pendant que la chaîne d’intégration attend.

D’où viennent ces informations

Questions fréquentes

Mailpit est gratuit : pourquoi faire évoluer vos tests vers Facteur ?

Mailpit est très bon en local mais pose problème en CI/CD : pas d’adresses publiques accessibles par des services tiers (OAuth, Stripe, OTP SMS), pas de partage de boîtes entre plusieurs pipelines, et aucune gestion d’équipe ou SSO. Facteur supprime toute la charge d’exploitation de serveur et apporte une gestion unifiée email + SMS hébergée en France.

Que faut-il changer dans les tests pour migrer ?

Peu de chose, puisqu’il n’y a pas de SDK : l’appel à /api/v1/messages devient messages.waitFor(), l’extraction du code disparaît, et le conteneur sort du compose. La partie la plus visible de la bascule est ce qu’on retire de la chaîne d’intégration, pas ce qu’on écrit.

Peut-on utiliser les deux ?

Oui ! Vous pouvez garder Mailpit sur votre machine de développement pour l’itération hors-ligne, et utiliser Facteur dans vos pipelines CI/CD où la stabilité, l’historique, le partage et la réception d’emails et SMS réels sont indispensables.

Quelle différence avec MailHog ?

Mailpit en est le successeur de fait ; le dépôt de MailHog n’est plus activement maintenu. Si vous êtes encore sur MailHog, cette page et sa démarche de migration s’appliquent exactement de la même manière.

Autres comparaisons : Mailisk · Mailtrap · MailSlurp · Mailosaur

Votre première inbox dans deux minutes

Le plan gratuit ne demande pas de carte bancaire. Si vous changez d’outil, la marche à suivre tient en une page et se tente sur un seul test.