L’email est cette dépendance lente et imprévisible qui rend les tests automatisés instables. Un test d’inscription peut réussir en local mais échouer en CI parce que la boîte contient déjà un ancien lien de vérification, la livraison est retardée, ou l’analyse du contenu email est fragile. La solution est simple : générer une boîte de réception email jetable fraîche pour chaque test, puis effectuer des assertions sur les messages reçus dans un format structuré.
Ce guide présente une approche pratique et reproductible pour créer des boîtes jetables par programmation, collecter les emails de manière fiable, et les utiliser dans l’automatisation QA et les agents pilotés par LLM.
Ce que signifient les « boîtes de réception email jetables » pour les tests
Pour les tests, une boîte jetable n’est pas seulement une adresse email aléatoire. C’est une boîte que vous pouvez :
- Créer à la demande (par test, par spec, ou par utilisateur)
- Lire automatiquement (sans qu’un humain ouvre une interface)
- Corréler à un contexte de test spécifique (ID de test, ID de scénario)
- Supprimer ou ignorer une fois le test terminé
C’est important car de nombreux sites d’« email temporaire » sont conçus pour les humains, pas pour l’automatisation. Ils ont souvent des limites de débit, aucune API, une livraison peu fiable, et aucun moyen sûr d’intégration en CI.
💡 Finies les galères avec les tests email instables
Mailhook élimine les problèmes des fournisseurs d’email temporaire peu fiables. Créez des boîtes jetables par programmation, recevez les emails en JSON structuré, et construisez une automatisation de tests rock-solid. Testez de manière fiable → ou Voir la doc API →
Mailhook est spécialement conçu pour l’automatisation et les agents : vous créez des boîtes jetables via API, puis recevez les emails entrants en JSON structuré, soit par polling soit par webhooks temps réel.
Scénarios de test courants qui nécessitent une boîte fraîche
Les boîtes jetables s’avèrent utiles partout où votre produit envoie des emails et s’attend à une action de l’utilisateur :
- Vérification d’inscription (codes OTP, liens de vérification)
- Réinitialisation de mot de passe
- Liens magiques (connexion sans mot de passe)
- Invitations (invitations d’équipe, onboarding de collègues)
- Confirmations de changement d’email
- Analyse d’emails entrants (réponses support, routage entrant, gestion reply-to)
- Workflows d’agents où un LLM doit « recevoir un email » et extraire un token
Si vous développez de l’automatisation qui touche au marketing sortant ou à la gestion de leads, vous voudrez également des boîtes jetables en staging pour tester les flux entrants sans polluer de vraies boîtes. Par exemple, les équipes qui développent des pipelines de leads Instagram comme Orsay ont souvent besoin de valider les boucles de suivi et de réponse de bout en bout dans tous les environnements.
Critères pour choisir une API de boîte jetable (édition QA + agent)
Tous les fournisseurs d’email jetable ne sont pas adaptés à l’automatisation. Voici une checklist pratique et comment elle correspond aux capacités de Mailhook.
| Exigence pour les tests | Pourquoi c’est important en CI et pour les agents | Que utiliser dans Mailhook |
|---|---|---|
| Création de boîte par programmation | Vous avez besoin d’une boîte par test, pas d’une boîte partagée | Création de boîte jetable via API |
| Messages structurés | Les tests doivent faire des assertions sur des champs, pas du regex HTML | Recevoir les emails en JSON |
| Signaux de livraison temps réel | Éviter les longs sleeps et les boucles de polling instables | Notifications webhook |
| Fallback polling | Certains setups CI ne peuvent pas accepter de webhooks entrants | API de polling pour emails |
| Contrôles de sécurité | Ne pas faire confiance aux callbacks non signés en automatisation | Payloads signés |
| Options de domaine | Domaines partagés rapides, domaines custom pour le contrôle | Domaines partagés instantanés + support domaine custom |
| Traitement en lot | Beaucoup de tests génèrent beaucoup d’emails | Traitement d’emails en lot |
Le pattern « une boîte par test »
Le pattern le plus simple et fiable est :
- Générer une nouvelle boîte au début du test
- Utiliser cette adresse dans votre app sous test (inscription, reset, invitation)
- Attendre l’email (webhook d’abord, polling en fallback)
- Faire des assertions sur le JSON (sujet, destinataire, liens, codes)
- Terminer le test et jeter la boîte
Idée clé : traiter la boîte comme un test fixture. Votre app ne devrait jamais envoyer d’emails de test à une adresse partagée qui accumule l’historique.

Étape par étape : générer une boîte jetable et faire des assertions sur l’email
Comme les formes d’endpoint peuvent évoluer dans le temps, la façon la plus robuste d’implémenter est :
- Utiliser l’API Mailhook pour créer une boîte et obtenir une adresse email
- Utiliser soit la livraison webhook soit le polling pour récupérer les messages reçus
- Garder vos assertions de test focalisées sur des champs stables (destinataire, sujet, URL/token extrait)
Pour les détails d’interface les plus à jour, gardez la référence officielle à portée : Mailhook llms.txt.
1) Créer une boîte (au début du test)
Créez la boîte dans le setup de votre test et stockez :
- L’adresse email générée (à utiliser dans votre UI/API)
- L’identifiant de boîte (pour récupérer les messages plus tard)
Astuce d’implémentation : nommez ou taguez les boîtes avec une clé de test déterministe (par exemple run_2026_01_17_build_1842). Même si vous ne vous fiez pas aux tags côté serveur, garder cette valeur dans vos logs de test facilite grandement le debug.
2) Déclencher l’email depuis votre app
Exécutez l’action que vous voulez tester :
- Appelez votre endpoint d’inscription avec l’email jetable
- Ou complétez le flow d’inscription UI dans Playwright/Cypress
À ce point, l’email devrait être envoyé par votre app vers la nouvelle adresse.
3) Recevoir l’email : webhook d’abord ou polling
Approche webhook (recommandée pour la vitesse et la fiabilité)
- Votre harness de test expose un endpoint de callback (ou un petit serveur local)
- Mailhook poste les événements d’email entrant vers votre webhook
- Vous débloquez le test dès que l’événement arrive
Pour la sécurité, vérifiez les payloads signés avant d’accepter l’événement (Mailhook supporte les payloads signés).
Approche polling (meilleure quand les webhooks sont peu pratiques)
- Après avoir déclenché l’email, pollez la boîte pour les messages
- Arrêtez quand vous recevez le message attendu ou vous atteignez un timeout
En CI, le polling est souvent plus simple à mettre en place, mais les webhooks réduisent généralement le temps total d’exécution et l’instabilité.
4) Faire des assertions sur les champs JSON, pas le HTML de l’email
La forme JSON exacte dépend du fournisseur, mais un payload d’email structuré inclut typiquement des champs comme :
- Adresses expéditeur et destinataire
- Sujet
- Corps texte et/ou corps HTML
- En-têtes
- Pièces jointes (si présentes)
Astuce de test : préférez des assertions comme :
- « destinataire égale l’adresse générée »
- « sujet contient ‘Vérifiez votre email’ »
- « corps contient une URL avec le chemin
/verify»
Puis analysez le lien de vérification ou l’OTP de manière ciblée. Évitez les snapshots fragiles de tout le HTML.
Rendre les tests basés sur l’email moins instables
La plupart des échecs viennent du timing et de l’ambiguïté. Ces pratiques renforcent votre suite.
Utiliser la corrélation, pas la devinette
Si votre app peut envoyer plusieurs emails, incluez un indice de corrélation dans la requête pour pouvoir identifier rapidement le bon message. Exemples :
- Un ID de test unique intégré dans le nom d’inscription (si votre template l’inclut)
- Un préfixe de sujet distinct en environnement de test
- Une adresse email distincte par scénario (meilleure option)
L’approche la plus propre reste : une boîte par scénario.
Remplacer les sleeps par des attentes explicites
Au lieu de sleep(10), faites :
- Webhook : attendre sur une promesse/événement pendant N secondes maximum
- Polling : poller avec un intervalle court et un timeout global
Un point de départ pratique en CI est une attente max de 30 à 60 secondes, avec des intervalles de polling de 1 à 2 secondes. Ajustez selon votre fournisseur d’email et l’environnement.
Faire des assertions sur le minimum qui prouve la justesse
Les templates d’email changent souvent. Votre test devrait valider le comportement, pas la rédaction.
Bonnes assertions :
- Le lien de vérification existe et est valide
- Le token de reset correspond au format attendu
- L’adresse destinataire est correcte
Assertions risquées :
- Markup HTML exact
- Texte de paragraphe complet
Domaines partagés vs domaines custom pour les tests
Mailhook supporte les domaines partagés instantanés et les domaines custom. Lequel devriez-vous utiliser ?
Les domaines partagés sont idéaux quand :
- Vous voulez le setup le plus rapide
- Vous faites de la QA interne et du CI où la marque du domaine n’importe pas
- Vous n’avez pas besoin d’ajustement de délivrabilité au niveau domaine
Les domaines custom sont idéaux quand :
- Vous voulez des environnements de staging réalistes (par exemple,
test.votreentreprise.com) - Vous avez besoin de plus de contrôle sur la façon dont le mail est envoyé/reçu dans votre écosystème
- Vous voulez reproduire fidèlement les hypothèses de production
En pratique, beaucoup d’équipes commencent avec des domaines partagés pour la vitesse, puis ajoutent un domaine custom une fois que les tests sont stables.
Utiliser les boîtes jetables avec les agents LLM
Les agents LLM ont fréquemment besoin de compléter des workflows qui impliquent l’email :
- Créer un compte d’essai
- Attendre la vérification
- Extraire un code ou un lien
- Continuer le workflow
Un pattern d’agent fiable est :
- Outil :
create_inbox()retourne{ inbox_id, email_address } - Outil :
wait_for_email(inbox_id, filter)retourne le prochain email JSON correspondant - Logique agent : extraire
verification_linkou OTP et continuer
Quand vous utilisez la livraison webhook, vous pouvez aussi pousser les messages dans la queue d’événements de votre agent dès qu’ils arrivent, réduisant la latence et éliminant les cycles de polling inutiles.
💡 Construisez des agents IA plus intelligents qui gèrent les workflows email
Donnez à vos agents LLM la capacité de créer des comptes, recevoir des emails de vérification, et extraire des tokens automatiquement. Avec l’approche API-first de Mailhook, les agents obtiennent des réponses JSON structurées parfaites pour les workflows autonomes. Explorer les cas d’usage agents IA → ou Commencer à construire →
Si vous implémentez des outils d’agent, gardez l’interface petite et déterministe. Les agents performent mieux quand l’outil retourne des données structurées, ce qui est exactement le but de recevoir les emails en JSON.
Notes d’implémentation pour les équipes qui déploient la CI à grande échelle
Quelques pratiques opérationnelles aident une fois que vous avez de nombreux tests concurrents :
- Parallélisme : générez une boîte par worker pour éviter les collisions.
- Isolation : ne réutilisez jamais les boîtes entre tests, même si vous les « nettoyez ».
- Debuggabilité : loggez l’adresse email générée et l’ID de boîte pour chaque test.
- Sécurité : vérifiez les signatures webhook, traitez le contenu email comme une entrée non fiable.
- Débit : si vous traitez beaucoup d’emails à la fois, préférez la récupération et l’analyse batch-friendly pour réduire l’overhead.
Commencer avec Mailhook
Si vos tests ou agents dépendent de l’email, les boîtes jetables sont l’un des changements avec le meilleur ROI que vous puissiez faire pour la fiabilité. Mailhook est conçu exactement pour cela : création de boîte programmable via API, emails entrants livrés en JSON structuré, webhooks temps réel, fallback polling, payloads signés, et support pour domaines partagés et custom.
Utilisez la référence canonique des fonctionnalités et intégrations ici : Mailhook llms.txt.
Puis explorez la plateforme sur Mailhook pour commencer à générer des boîtes de réception email jetables pour votre prochain test.