E-Mail-Verifizierungstests mit Wegwerfadressen automatisieren
Erstellen Sie zuverlassige End-to-End-Tests fur Registrierungsablaufe, Passwortzurucksetzungen und Benachrichtigungssysteme mit der EvilMail-API.
EvilMail Team20. Februar 20269 Min. Lesezeit
Warum E-Mail-Verifizierungstests automatisieren?
Ablaufe, die E-Mail-Versand beinhalten -- Registrierungen, Passwortzurucksetzungen, Benachrichtigungen -- gehoren zu den kritischsten Funktionen jeder Anwendung. Dennoch werden sie oft am wenigsten getestet, da die Uberprufung des tatsachlichen E-Mail-Empfangs in einer automatisierten Pipeline traditionell schwierig ist. Die EvilMail-API lost dieses Problem, indem sie es Ihnen ermoglicht, Testadressen dynamisch zu erstellen und deren Inhalt programmatisch abzurufen.
Testumgebung einrichten
Stellen Sie zunachst sicher, dass Sie uber einen EvilMail-API-Schlussel verfugen. Speichern Sie ihn in einer Umgebungsvariablen, damit er niemals in Ihrem Quellcode erscheint:
export EVILMAIL_API_KEY="your_api_key_here"
Installieren Sie anschliessend die erforderlichen Abhangigkeiten fur Ihr Testprojekt. Die EvilMail-API ist mit jeder Programmiersprache kompatibel, die HTTP-Anfragen ausfuhren kann.
Test-E-Mail-Adressen uber die API erstellen
Der erste Schritt besteht darin, fur jedes Testszenario eine temporare Adresse zu generieren. Dies gewahrleistet die Isolation zwischen Tests und vermeidet falsch-positive Ergebnisse:
Nachdem Sie den E-Mail-Versand ausgelost haben (z. B. durch Absenden eines Registrierungsformulars), mussen Sie den Posteingang der temporaren Adresse abfragen, um den korrekten Empfang der Nachricht zu uberprufen:
curl -X GET https://evilmail.com/api/inbox/[email protected]
-H "Authorization: Bearer $EVILMAIL_API_KEY"
Vollstandiges Python-Beispiel
Hier ist ein vollstandiger End-to-End-Test in Python, der einen kompletten Registrierungsablauf uberpruft:
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}")
CI/CD-Integration
Diese Art von Test lasst sich nahtlos in Ihre CI/CD-Pipeline integrieren. Fugen Sie ihn als Schritt in Ihren GitHub Actions-, GitLab CI- oder Jenkins-Workflow ein. Der API-Schlussel muss als Pipeline-Secret gespeichert und niemals fest im Code hinterlegt werden.
Assertions und Validierung
Uber die blosse Empfangsprufung hinaus konnen Sie den Inhalt der E-Mail validieren: Uberprufen Sie, ob der Bestatigungs-Link funktioniert, ob der Benutzername korrekt enthalten ist, ob Bilder geladen werden und ob Abmelde-Links vorhanden sind.
Tests skalieren
Fur umfangreiche Testsuiten erstellen Sie Adressen in Stapeln und fuhren Szenarien parallel aus. Die EvilMail-API unterstutzt einen hohen Durchsatz, sodass Sie Hunderte von Tests gleichzeitig ausfuhren konnen, ohne auf Ratenbegrenzungen zu stossen.