Automatiser les tests de verification e-mail avec des adresses jetables
Construisez des tests end-to-end fiables pour les flux d'inscription, les reinitialisations de mot de passe et les systemes de notification grace a l'API EvilMail.
EvilMail Team20 février 20269 min de lecture
Pourquoi automatiser les tests de verification e-mail ?
Les flux impliquant l'envoi d'e-mails -- inscriptions, reinitialisations de mot de passe, notifications -- sont parmi les plus critiques de toute application. Pourtant, ils sont souvent les moins bien testes, car verifier la reception reelle d'un e-mail dans un pipeline automatise est traditionnellement complexe. L'API EvilMail resout ce probleme en vous permettant de creer des adresses de test a la volee et de consulter leur contenu par programmation.
Mise en place de l'environnement de test
Avant de commencer, assurez-vous de disposer d'une cle API EvilMail. Stockez-la dans une variable d'environnement pour ne jamais l'exposer dans votre code source :
export EVILMAIL_API_KEY="your_api_key_here"
Installez ensuite les dependances necessaires pour votre projet de test. L'API EvilMail est compatible avec tout langage capable d'effectuer des requetes HTTP.
Creer des adresses e-mail de test via l'API
La premiere etape consiste a generer une adresse temporaire pour chaque scenario de test. Cela garantit l'isolation entre les tests et evite les faux positifs :
Apres avoir declenche l'envoi d'un e-mail (par exemple en soumettant un formulaire d'inscription), vous devez interroger la boite de reception de l'adresse temporaire pour verifier la bonne reception du message :
curl -X GET https://evilmail.com/api/inbox/[email protected]
-H "Authorization: Bearer $EVILMAIL_API_KEY"
Exemple complet en Python
Voici un exemple de test end-to-end en Python qui verifie un flux d'inscription complet :
import requests
import time
import os
API_KEY = os.environ["EVILMAIL_API_KEY"]
BASE_URL = "https://evilmail.com/api"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Step 1: Create a temporary email
resp = requests.post(f"{BASE_URL}/temp-email",
headers=HEADERS,
json={"domain": "testdomain.com"})
temp_email = resp.json()["email"]
# Step 2: Trigger the signup flow
requests.post("https://yourapp.com/signup",
json={"email": temp_email, "password": "TestPass123!"})
# Step 3: Poll the inbox
for attempt in range(10):
time.sleep(3)
inbox = requests.get(f"{BASE_URL}/inbox/{temp_email}",
headers=HEADERS).json()
if inbox["messages"]:
break
# Step 4: Assertions
assert len(inbox["messages"]) > 0, "No verification email received"
assert "verify" in inbox["messages"][0]["subject"].lower()
print(f"Test passed: verification email received at {temp_email}")
Integration CI/CD
Ce type de test s'integre parfaitement dans votre pipeline CI/CD. Ajoutez-le comme etape de votre workflow GitHub Actions, GitLab CI ou Jenkins. La cle API doit etre stockee comme secret de votre pipeline et jamais en dur dans le code.
Assertions et validation
Au-dela de la simple verification de reception, vous pouvez valider le contenu de l'e-mail : verifier que le lien de confirmation fonctionne, que le nom de l'utilisateur est correctement inclus, que les images sont chargees et que les liens de desinscription sont presents.
Monter en charge les tests
Pour les suites de tests volumineuses, creez des adresses en lot et executez les scenarios en parallele. L'API EvilMail prend en charge un debit eleve, ce qui vous permet de lancer des centaines de tests simultanement sans risque de limitation.