Temp Mail
in C#.
Erstelle Wegwerf-Postfächer und hole OTP-Codes direkt aus C#.
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;
var http = new HttpClient { BaseAddress = new Uri("https://evilmail.pro") };
http.DefaultRequestHeaders.Add(
"X-API-Key", Environment.GetEnvironmentVariable("EVILMAIL_KEY"));
// Create an inbox that self-destructs after 30 minutes.
var res = await http.PostAsJsonAsync("/api/temp-email", new { ttlMinutes = 30 });
res.EnsureSuccessStatusCode();
using var doc = await res.Content.ReadFromJsonAsync<JsonDocument>();
var data = doc!.RootElement.GetProperty("data");
Console.WriteLine(data.GetProperty("email").GetString());Temp Mail in C# einzubinden erfordert nur ein paar Zeilen HttpClient und System.Text.Json — kein SMTP-Server, kein Postfach-Setup, keine gefälschten SDKs. EvilMail bietet dir eine echte API für Wegwerf-E-Mails, die du aus jeder .NET-App aufrufen kannst: Erstelle ein Wegwerf-Postfach, frage es ab, bis die Nachricht eintrifft, und extrahiere dann per Regex den Bestätigungscode aus dem Text. Sie ist für die schmerzhaften Teile des Testens gebaut — End-to-End-Registrierungsabläufe, OTP- und E-Mail-Verifizierungsprüfungen sowie CI-Pipelines, die bei jedem Durchlauf ein frisches Postfach brauchen, ohne dass je ein Mensch einen E-Mail-Client öffnet.
Warum Temp Mail in C# nutzen
Automatisierte Registrierung & E2E-Tests
Stelle pro Testlauf ein frisches Wegwerf-Postfach bereit, damit Registrierungsabläufe nie an einer wiederverwendeten Adresse kollidieren. Perfekt für xUnit-, NUnit- oder Playwright-Suites, die auf die Willkommens- oder Bestätigungs-E-Mail prüfen.
OTP- & E-Mail-Verifizierungsprüfungen
Frage das Postfach ab, lies die Nachricht und ziehe den 6-stelligen Code mit einem einzigen Regex heraus. Dein Test kann den kompletten Schritt „Bestätige deine E-Mail“ von Anfang bis Ende durchlaufen — genau wie ein echter Nutzer.
CI/CD-Pipelines
Lies den API-Schlüssel aus einer Umgebungsvariablen und erzeuge temporäre E-Mails bei Bedarf innerhalb von GitHub Actions, Azure Pipelines oder jedem Runner — kein gemeinsames Test-Postfach, das aufgeräumt oder ratenbegrenzt werden muss.
Scraping & Wegwerf-Registrierungen
Wenn ein .NET-Tool eine einmalige Adresse braucht, um eine Ressource freizuschalten, erstelle ein Temp-Mail-Postfach, das sich nach einer festgelegten TTL selbst zerstört und nie deine echte Domain berührt.
Der Ablauf — C# Temp Mail in 3 Aufrufen
Ein Wegwerf-Postfach erstellen
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;
var http = new HttpClient { BaseAddress = new Uri("https://evilmail.pro") };
http.DefaultRequestHeaders.Add(
"X-API-Key", Environment.GetEnvironmentVariable("EVILMAIL_KEY"));
// Ask for an inbox with a 30-minute time-to-live.
var res = await http.PostAsJsonAsync(
"/api/temp-email", new { ttlMinutes = 30 });
res.EnsureSuccessStatusCode();
using var doc = await res.Content.ReadFromJsonAsync<JsonDocument>();
var data = doc!.RootElement.GetProperty("data");
string email = data.GetProperty("email").GetString()!;
string token = data.GetProperty("sessionToken").GetString()!;
Console.WriteLine($"Inbox: {email}");
Console.WriteLine($"Token: {token}");Abfragen, bis die E-Mail eintrifft
// Reuse `http` and `token` from step 1.
// Check the inbox up to 20 times, 3s apart.
int uid = -1;
for (int i = 0; i < 20; i++)
{
var res = await http.GetAsync($"/api/temp-email/{token}");
res.EnsureSuccessStatusCode();
using var doc = await res.Content.ReadFromJsonAsync<JsonDocument>();
var messages = doc!.RootElement
.GetProperty("data").GetProperty("messages");
if (messages.GetArrayLength() > 0)
{
uid = messages[0].GetProperty("uid").GetInt32();
Console.WriteLine($"Got message uid={uid}");
break;
}
Console.WriteLine("No mail yet, retrying...");
await Task.Delay(TimeSpan.FromSeconds(3));
}
if (uid < 0)
throw new TimeoutException("No email arrived in time.");Die Nachricht lesen & den Code extrahieren
using System.Text.RegularExpressions;
// Fetch the full message body by its uid (reuse `http`, `uid`, `token`).
var res = await http.GetAsync(
$"/api/message/{uid}?token={token}");
res.EnsureSuccessStatusCode();
using var doc = await res.Content.ReadFromJsonAsync<JsonDocument>();
var data = doc!.RootElement.GetProperty("data");
string text = data.GetProperty("text").GetString() ?? "";
// Pull the first 6-digit code out of the body.
var match = Regex.Match(text, @"\b(\d{6})\b");
if (match.Success)
Console.WriteLine($"OTP: {match.Groups[1].Value}");
else
Console.WriteLine("No 6-digit code found.");C# Temp Mail — FAQ
Q1Wie bekomme ich in C# 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}. Das data.email der Antwort ist deine Wegwerf-Adresse und data.sessionToken ist das Handle, mit dem du ihr Postfach liest. Mit HttpClient und System.Text.Json sind das etwa zehn Zeilen — siehe das Hero-Snippet oben.
Q2Kann ich das für automatisierte Tests verwenden?+
Ja — das ist der Hauptanwendungsfall. Erstelle zu Beginn jedes Tests ein frisches Postfach, löse die E-Mail deiner App aus und frage dann GET /api/temp-email/{sessionToken} ab, bis eine Nachricht erscheint. Es fügt sich sauber in xUnit-, NUnit- oder Playwright/.NET-E2E-Suites ein, und weil der Schlüssel aus einer Umgebungsvariablen kommt, läuft es unbeaufsichtigt in der CI.
Q3Wie extrahiere ich das OTP aus der E-Mail?+
Rufe die Nachricht mit GET /api/message/{uid}?token={sessionToken} ab, nimm data.text (oder data.html) und führe einen Regex aus. Für einen standardmäßigen 6-stelligen Einmalcode liefert Regex.Match(text, @"\b(\d{6})\b") den Code in Gruppe 1. Passe das Muster an, wenn dein Anbieter eine andere Länge oder ein Token in einem Link verwendet.
Q4Brauche ich einen API-Schlüssel, und gibt es Rate-Limits?+
Ja, jede Anfrage muss den X-API-Key-Header enthalten — lies ihn aus einer Umgebungsvariablen wie EVILMAIL_KEY und schreibe ihn niemals fest in den Quellcode. Anfragen sind pro Schlüssel ratenbegrenzt, halte das Abfragen also in sinnvollen Intervallen (etwa alle 3 Sekunden, ~20 Versuche, wie gezeigt) statt in engen Schleifen. Prüfe dein EvilMail-Dashboard für das genaue Kontingent deines Tarifs.
Q5Wie lange lebt das Postfach?+
Du steuerst es mit dem Feld ttlMinutes, wenn du das Postfach erstellst — setze es auf 30 für eine halbe Stunde oder kürzer für schnelle einmalige Verifizierungen. Sobald die TTL abläuft, werden die Adresse und ihre Nachrichten zerstört, hole und lies deine Nachricht also, bevor das Zeitfenster schließt.
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.

