Aller au contenu
Facteur
/ Comparatif

Facteur et Mailpit

Mailpit est un logiciel que vous faites tourner vous-même. Voici ce qu'il publie, puis ce que fait Facteur, qui est un service hébergé.

Sources

Ce que Mailpit publie

Chaque ligne est une information que Mailpit publie. Elle porte l'adresse de la page où nous l'avons lue et la date de lecture. Ce que nous n'avons pas pu vérifier n'y figure pas. Ces pages changent : relisez la source avant de décider.

  1. 01

    Mailpit est publié sous licence MIT.

    https://github.com/axllent/mailpit ·

  2. 02

    Mailpit fait office de serveur SMTP, offre une interface web pour consulter les e-mails interceptés et une API REST pour les tests d'intégration.

    https://mailpit.axllent.org/docs/ ·

  3. 03

    Mailpit tourne depuis un seul binaire statique ou des images Docker multi-architectures.

    https://mailpit.axllent.org/docs/ ·

  4. 04

    Par défaut, l'interface web écoute sur le port 8025 et le serveur SMTP sur le port 1025.

    https://github.com/axllent/mailpit ·

  5. 05

    Mailpit propose aussi POP3, un test de spam avec un serveur SpamAssassin, le relais SMTP de messages et une fonction « Chaos » qui simule des erreurs SMTP.

    https://github.com/axllent/mailpit ·

  6. 06

    Son dépôt dit que Mailpit s'est d'abord inspiré de MailHog, qui n'est plus maintenu.

    https://github.com/axllent/mailpit ·

  7. 07

    La spécification de l'API de Mailpit liste les messages par GET /api/v1/messages, dont la réponse porte un tableau messages, et les cherche par GET /api/v1/search avec le paramètre query. Un résumé de message porte notamment les champs ID, Subject, To, From, Created et Snippet.

    https://github.com/axllent/mailpit/blob/develop/server/ui/api/v1/swagger.json ·

Traduire vos tests

Le même test, chez l'un puis chez l'autre

Il n'y a pas de bibliothèque à traduire : Mailpit s'interroge en HTTP, comme Facteur. Ce qui change n'est pas la forme de l'appel. Il n'y a plus de service à faire tourner à côté de vos tests, et plus de code à extraire du message.

Avant, avec Mailpit JavaScript
// Mailpit tourne à côté des tests : SMTP sur le port 1025,
// interface web et API sur le port 8025.
const response = await fetch('http://localhost:8025/api/v1/messages');
const { messages } = await response.json();

// Le code reste à chercher dans Snippet, ou dans le message complet.
Chaque appel de Mailpit montré ici vient de sa documentation : la section Sources donne la page et la date de lecture.
Après, avec Facteur TypeScript
// Aucun paquet Facteur à installer : un appel HTTP qui attend.
const search = new URLSearchParams({
  inbox: 'j3k9x2mq',
  sentTo: address,
  wait: '30000',
});

const response = await fetch('https://api.facteur.eu/v1/messages?' + search, {
  headers: { authorization: 'Bearer ' + process.env.FACTEUR_API_KEY },
});
const { messages } = await response.json();

// Le code est déjà extrait, dans un champ à part.
const code = messages[0].otp;
Facteur ne publie encore aucune bibliothèque : le test appelle l'API en HTTP. Le portail des développeurs joue cet appel contre le service.
La migration, pas à pas

Quatre étapes, les deux services côte à côte

  1. Étape 01

    Créer un compte et une inbox

    L'inbox est hébergée et ses adresses sont joignables de l'extérieur : un fournisseur d'identité ou un partenaire peut y écrire, pas seulement votre code.

  2. Étape 02

    Retirer le service de la chaîne d'intégration

    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.

  3. Étape 03

    Remplacer l'appel HTTP

    La lecture de /api/v1/messages et le tri du tableau deviennent une recherche de Facteur, qui attend le bon message et rend le code déjà extrait.

  4. Étape 04

    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 gênent pas.

La bascule, en synthèse

Ce qui change, ligne par ligne

Chaque case sur Mailpit renvoie à la phrase des sources dont elle vient. Une ligne qu'aucune source ne permet d'écrire n'est pas dans le tableau.

Sujet Facteur Mailpit
À faire tourner Rien : un service hébergé chez OVHcloud. Un binaire statique ou une image Docker, à faire tourner vous-même. source
Réception Toute adresse du domaine de l'inbox, joignable depuis n'importe quel serveur de messagerie. SMTP sur le port 1025, interface et API sur le port 8025, par défaut. source
Lire un message GET /v1/messages, qui attend le message cinq minutes au plus. GET /api/v1/messages pour lister, GET /api/v1/search pour chercher. source
Coût du logiciel Un abonnement, avec une offre gratuite : la page Tarifs donne les prix. Licence MIT. source
Fonctions en plus Ni POP3, ni note de spam, ni relais SMTP. POP3, note de spam SpamAssassin, relais SMTP et simulation d'erreurs SMTP. source
Le coût réel

Ce que coûte un outil gratuit

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.

Facteur

Ce que fait Facteur

Ces lignes décrivent Facteur, telles que ses pages produit et son centre d'aide les donnent.

01

Une adresse par test

Tout ce qui précède l'arobase est libre. Deux tests qui écrivent à inscription+run-42 et inscription+run-43 reçoivent chacun leur message, dans la même inbox.

02

Attendre le message en une requête

La recherche accepte un délai d'attente de cinq minutes au plus. Si rien n'arrive, elle répond une liste vide, pas une erreur.

03

Le code déjà extrait

Le champ otp porte le code à usage unique le plus probable. Quand rien ne l'annonce, Facteur le laisse vide plutôt que de deviner.

04

Lire ne coûte rien

Seul un message reçu et gardé compte dans votre offre. Un test qui reçoit 3 e-mails et les relit 40 fois en consomme 3.

05

Supprimé à l'échéance

Chaque message est supprimé à l'échéance de votre offre, avec son fichier brut et ses pièces jointes.

06

Hébergé chez OVHcloud

L'application et sa base de données sont hébergées chez OVHcloud, et la facturation est en euros. Le centre de données est en France.

07

Les SMS ne sont pas encore reçus

Le raccordement à l'opérateur qui livre les SMS n'est pas en service. Un numéro attribué ne reçoit aucun SMS réel aujourd'hui.

Choisir

Questions fréquentes

Quand regarder du côté de Mailpit ?

Mailpit se fait tourner soi-même, depuis un binaire ou une image Docker, sous licence MIT. Si vous voulez un outil local, sans service hébergé, c'est son terrain. Facteur est un service hébergé : vous n'installez rien, et vos e-mails de test arrivent chez Facteur.

Que faut-il changer dans les tests pour migrer ?

Peu de chose : l'appel à /api/v1/messages devient la recherche de Facteur, l'extraction du code disparaît, et le conteneur sort de la chaîne d'intégration.

Peut-on utiliser les deux ?

Oui. Gardez Mailpit sur votre poste pour travailler hors ligne, et utilisez Facteur dans vos pipelines, là où plusieurs exécutions partagent les mêmes boîtes et où le courrier vient de l'extérieur.

Où lire les prix de Facteur ?

Sur la page Tarifs, qui lit la grille de Facteur. Aucun prix de Facteur n'est écrit ici.

Essayez Facteur sans compte

L'essai reçoit un e-mail de test, sans inscription. Les prix sont sur la page Tarifs.