EvilMail
Développeurs

Automatiser les tests de vérification email avec des adresses jetables

Construisez des tests de bout en bout fiables pour les flux d'inscription, de réinitialisation de mot de passe et de notification en utilisant l'API EvilMail.

EvilMail TeamFebruary 20, 20269 min de lecture

Si votre application envoie des emails — confirmations d'inscription, réinitialisations de mot de passe, factures, notifications — vous avez besoin de tests automatisés qui vérifient que ces emails arrivent effectivement et contiennent le bon contenu. Nous avons vu trop d'équipes négliger les tests d'email parce que cela semble compliqué. Ce n'est pas le cas, et ce guide va le prouver.

Le problème fondamental des tests de flux email est que vous avez besoin de boîtes de réception réelles et accessibles que vous pouvez lire de manière programmatique. Utiliser des comptes Gmail personnels dans les pipelines CI est fragile, non sécurisé et ne passe pas à l'échelle. C'est précisément là que les API d'email jetable trouvent leur place dans une pile de tests mature.

Configuration de votre environnement de test Tout d'abord, récupérez votre clé API depuis le tableau de bord EvilMail. Stockez-la comme variable d'environnement dans votre système CI — ne committez jamais de clés API dans le contrôle de version. ``` export EVILMAIL_API_KEY="your_api_key_here" ```

Création d'une adresse email de test Avant chaque exécution de test, générez un nouvel email jetable : ``` curl -X POST https://evilmail.pro/api/temp-email \ -H 'Content-Type: application/json' \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -d '{"domain": "evilmail.pro", "ttlMinutes": 30}' ```

La réponse inclut l'adresse email et un jeton de session. Utilisez l'adresse email pour enregistrer un compte de test dans votre application.

Interrogation de la boîte de réception Après avoir déclenché une action d'envoi d'email dans votre application (inscription, réinitialisation de mot de passe, etc.), interrogez le point d'accès de la boîte de réception jusqu'à l'arrivée du message : ``` curl https://evilmail.pro/api/inbox \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" ```

Dans un vrai test, vous encapsuleriez cela dans une boucle de tentatives avec un délai d'expiration. Voici un exemple pratique en Python : ``` import requests import time

API_KEY = os.environ['EVILMAIL_API_KEY'] BASE = 'https://evilmail.pro'

def wait_for_email(subject_contains, timeout=60): deadline = time.time() + timeout while time.time() < deadline: r = requests.get(f'{BASE}/api/inbox', headers={'X-API-Key': API_KEY}) messages = r.json().get('data', []) for msg in messages: if subject_contains in msg['subject']: return msg time.sleep(3) raise TimeoutError('Email not received') ```

Intégration aux pipelines CI/CD Ce modèle fonctionne parfaitement avec n'importe quel système CI — GitHub Actions, GitLab CI, Jenkins, CircleCI. Le principe clé est : chaque exécution de test obtient une adresse jetable unique, exécute ses assertions, et l'adresse expire automatiquement. Pas de scripts de nettoyage, pas de boîtes partagées encombrées, pas de tests instables causés par des emails résiduels des exécutions précédentes.

Une étape de workflow GitHub Actions pourrait ressembler à ceci : ``` - name: Run email integration tests env: EVILMAIL_API_KEY: ${'{ secrets.EVILMAIL_API_KEY }'} run: pytest tests/email/ -v --timeout=120 ```

Que vérifier Ne vous contentez pas de vérifier qu'un email est arrivé. Vérifiez la ligne d'objet, l'adresse de l'expéditeur, la présence des liens critiques (URLs de vérification, jetons de réinitialisation), et que ces liens mènent effectivement à des pages valides. Un test d'email complet valide l'ensemble de la chaîne, du déclenchement à la livraison en passant par l'exactitude du contenu.

Montée en charge vers des centaines de tests Pour les suites de tests volumineuses nécessitant de nombreuses adresses email simultanées, utilisez le point d'accès de création de comptes pour générer des adresses sous votre propre domaine. Cela vous donne un contrôle total sur l'espace de noms et évite toute limitation de débit sur le point d'accès d'email temporaire : ``` curl -X POST https://evilmail.pro/api/accounts \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"email": "[email protected]", "password": "testpass"}' ```

Une fois la suite de tests terminée, supprimez les comptes de test en masse : ``` curl -X DELETE https://evilmail.pro/api/accounts \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"emails": ["[email protected]"]}' ```

En résumé Les tests d'email ne devraient pas être l'élément fragile et négligé de votre suite de tests. Avec une API d'email jetable adaptée, ils deviennent aussi déterministes et fiables que n'importe quel autre test d'intégration. Déployez en toute confiance, sachant que vos emails fonctionnent réellement.

Articles connexes