Temp Mail
in PHP.
Wegwerf-Postfächer und OTP-Extraktion in PHP — reines curl, kein SDK.
<?php
// Create a disposable EvilMail inbox and print the address.
$key = getenv('EVILMAIL_KEY'); // never hard-code the key
$ch = curl_init('https://evilmail.pro/api/temp-email');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"X-API-Key: $key",
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['ttlMinutes' => 30]),
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $res['data']['email'] . "\n"; // e.g. [email protected]Erstelle Temp-Mail in PHP mit wenigen Zeilen curl: Die EvilMail API lässt dich ein Wegwerf-Postfach anlegen, es abfragen, bis eine Nachricht eintrifft, und einen 6-stelligen Code direkt aus dem Text ziehen. Sie ist für Entwickler gebaut, die Registrierungsabläufe testen, OTP-E-Mails prüfen oder E-Mail-Checks in CI durchführen müssen, ohne ein echtes Postfach einrichten zu müssen. Alles läuft über reines HTTP mit einem X-API-Key-Header, sodass sich PHP-Temp-Mail ohne zusätzliche Abhängigkeiten in jedes Skript, jede Test-Suite oder jeden Worker einfügt.
Warum Temp Mail in PHP nutzen
Automatisierte Registrierungs- & OTP-Tests
Registriere pro Testlauf ein frisches Wegwerf-Postfach, lies dann die Bestätigungs-E-Mail zurück und extrahiere den 6-stelligen Code. Kein geteiltes Postfach, keine Vermischung zwischen Tests.
E-Mail-Verifizierung in CI/CD
Führe End-to-End-E-Mail-Checks direkt in deiner Pipeline aus. Da es nur curl über HTTPS ist, funktioniert PHP-Temp-Mail auf deinem Laptop genauso wie auf einem CI-Runner.
QA von Transaktions-Mails ohne Scraping
Löse eine Passwort-Zurücksetzung oder eine Willkommens-E-Mail aus und prüfe Betreff, Absender und Nachrichtentext direkt aus PHP — kein IMAP-Setup, kein manuelles Nachsehen im Postfach.
Einmalige Wegwerf-E-Mail in PHP
Brauchst du eine Wegwerfadresse für ein Formular oder ein Demo-Konto? Lege ein Postfach mit einem TTL an, nutze es und lass es von selbst ablaufen. Nichts aufzuräumen.
Der Ablauf — PHP Temp Mail in 3 Aufrufen
Wegwerf-Postfach anlegen
<?php
// POST /api/temp-email -> returns email + sessionToken.
$key = getenv('EVILMAIL_KEY');
$ch = curl_init('https://evilmail.pro/api/temp-email');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"X-API-Key: $key",
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['ttlMinutes' => 30]),
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
$email = $res['data']['email'];
$token = $res['data']['sessionToken']; // keep this for polling
echo "Inbox: $email (token $token)\n";Abfragen, bis die E-Mail eintrifft
<?php
// GET /api/temp-email/{token} until messages is non-empty.
$key = getenv('EVILMAIL_KEY');
$token = $token ?? $argv[1]; // sessionToken from step 1
$url = "https://evilmail.pro/api/temp-email/$token";
$messages = [];
for ($i = 0; $i < 20; $i++) { // ~20 tries, 3s apart
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: $key"],
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
$messages = $res['data']['messages'] ?? [];
if (!empty($messages)) {
break; // got at least one email
}
sleep(3);
}
if (empty($messages)) {
exit("No email arrived in time\n");
}
$uid = $messages[0]['uid']; // newest message uid
echo "Got message uid=$uid\n";Nachricht lesen & Code extrahieren
<?php
// GET /api/message/{uid}?token=... then regex the OTP.
$key = getenv('EVILMAIL_KEY');
$token = $token ?? $argv[1]; // sessionToken
$uid = $uid ?? $argv[2]; // uid from the poll step
$url = "https://evilmail.pro/api/message/$uid?token=$token";
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: $key"],
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
$body = $res['data']['text'] ?? '';
// A 6-digit OTP, e.g. "Your code is 123456".
if (preg_match('/\b(\d{6})\b/', $body, $m)) {
echo "OTP: {$m[1]}\n";
} else {
echo "No 6-digit code found\n";
}PHP Temp Mail — FAQ
Q1Wie bekomme ich in PHP eine Temp-Mail-Adresse?−
Sende eine POST-Anfrage an https://evilmail.pro/api/temp-email mit deinem X-API-Key-Header und einem JSON-Body wie {"ttlMinutes": 30}. Die Antwort enthält data.email (die Wegwerfadresse) und data.sessionToken, mit dem du auf eingehende Nachrichten abfragst. Das Hero-Snippet oben macht genau das in etwa zehn Zeilen curl.
Q2Kann ich das für automatisierte Tests verwenden?+
Ja — das ist der Hauptanwendungsfall. Da jeder Aufruf reines HTTPS mit einem API-Schlüssel ist, kannst du aus PHPUnit, einer Behat-Suite oder einem CI-Job ein Postfach anlegen, es abfragen und die empfangene E-Mail prüfen. Lege pro Test ein frisches Postfach an, um Läufe isoliert zu halten und übrig gebliebene Nachrichten zwischen Tests zu vermeiden.
Q3Wie extrahiere ich den OTP aus der E-Mail?+
Hole die Nachricht mit GET /api/message/{uid}?token={sessionToken}, lies data.text (oder data.html) und wende einen regex darauf an. Für einen üblichen 6-stelligen Einmalcode gibt preg_match('/\b(\d{6})\b/', $body, $m) den Code in $m[1] zurück. Passe das Muster an, falls deine Codes eine andere Länge oder ein anderes Format haben.
Q4Brauche ich einen API-Schlüssel und gibt es Ratenbegrenzungen?+
Ja, jede Anfrage muss den X-API-Key-Header enthalten — lies ihn aus einer Umgebungsvariable wie EVILMAIL_KEY, statt ihn fest im Code zu hinterlegen. Anfragen sind pro Schlüssel ratenbegrenzt; die Poll-Schleife in Schritt 2 (etwa 20 Versuche im Abstand von 3 Sekunden) bleibt bequem innerhalb der normalen Grenzen. Wenn du einen 429 erhältst, warte kurz und versuche es erneut.
Q5Wie lange lebt das Postfach?+
Du steuerst das über das Feld ttlMinutes beim Anlegen des Postfachs — in den Beispielen sind es 30 Minuten. Sobald der TTL abläuft, werden die Adresse und ihre Nachrichten automatisch verworfen, sodass es nichts aufzuräumen gibt. Setze einen längeren TTL für langsamere Abläufe oder einen kurzen für schnelle Wegwerf-Checks.
Temp Mail in anderen Sprachen
Ein API-Schlüssel. Wegwerf-Postfächer im großen Stil.
Erstelle unbegrenzt Wegwerf-Adressen, frage sie per HTTP ab und zieh Bestätigungscodes direkt in deine Tests und CI. Kostenlos zum Start; Custom-Domains und höhere Limits in den kostenpflichtigen Tarifen.

