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é.
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.
-
01
Mailpit est publié sous licence MIT.
-
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.
-
03
Mailpit tourne depuis un seul binaire statique ou des images Docker multi-architectures.
-
04
Par défaut, l'interface web écoute sur le port 8025 et le serveur SMTP sur le port 1025.
-
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.
-
06
Son dépôt dit que Mailpit s'est d'abord inspiré de MailHog, qui n'est plus maintenu.
-
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 ·
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.
// 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.
// 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;
Quatre étapes, les deux services côte à côte
-
É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.
-
É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.
-
É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.
-
É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.
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 |
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.
Ce que fait Facteur
Ces lignes décrivent Facteur, telles que ses pages produit et son centre d'aide les donnent.
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.
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.
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.
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.
Supprimé à l'échéance
Chaque message est supprimé à l'échéance de votre offre, avec son fichier brut et ses pièces jointes.
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.
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.
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.
Les autres outils
La même démarche pour chaque outil : ce qu'il publie, sourcé et daté, puis ce que fait Facteur.
Facteur et Mailisk
Ce que Mailisk publie sur ses namespaces, ses SMS et son offre gratuite, et ce que fait Facteur.
Facteur et Mailtrap
Ce que Mailtrap publie sur son bac à sable d'e-mails, ses aperçus HTML et ses offres, et ce que fait Facteur.
Facteur et MailSlurp
Ce que MailSlurp publie sur ses offres, ses boîtes et ses numéros de téléphone, et ce que fait Facteur.
Facteur et Mailosaur
Ce que Mailosaur publie sur ses offres, sa limite quotidienne, ses SMS et son API, et ce que fait Facteur.
Migrer depuis Mailosaur
La correspondance des appels de l'API, un par un, et ceux qui n'ont pas d'équivalent chez Facteur.
Essayez Facteur sans compte
L'essai reçoit un e-mail de test, sans inscription. Les prix sont sur la page Tarifs.