Temp Mail
in Ruby.
Wegwerf-E-Mail für Ruby, betrieben mit reinem net/http.
require "net/http"
require "json"
uri = URI("https://evilmail.pro/api/temp-email")
req = Net::HTTP::Post.new(uri)
req["X-API-Key"] = ENV.fetch("EVILMAIL_KEY")
req["Content-Type"] = "application/json"
req.body = { ttlMinutes: 30 }.to_json
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request(req)
end
data = JSON.parse(res.body).fetch("data")
puts "Inbox: #{data['email']}"
puts "Token: #{data['sessionToken']}"Wenn du einen Ruby-Temp-Mail-Posteingang einrichtest, kannst du die E-Mail-Verifizierung automatisieren – ohne echtes Postfach, ohne Browser und ohne manuelles Kopieren von OTP-Codes. EvilMail stellt eine kleine HTTP-API bereit, die du mit Rubys Standardbibliothek net/http ansteuern kannst: Erstelle einen Wegwerf-Posteingang, frage ihn ab, bis die Nachricht ankommt, und ziehe den Bestätigungscode dann per Regex direkt aus dem Nachrichtentext. Sie ist für Entwickler gebaut, die temporäre E-Mail in Ruby in Test-Suites, CI-Pipelines sowie Anmelde- oder OTP-Abläufen brauchen – keine Drittanbieter-Gems, keine unechten SDKs, nur schlichte Requests und JSON.
Warum Temp Mail in Ruby nutzen
End-to-End-Anmeldetests
Registriere einen Testnutzer mit einer echten Temp-Mail-Adresse und prüfe, ob die Willkommens- oder Bestätigungs-E-Mail tatsächlich ankommt. Kein geteilter Team-Posteingang, der verschmutzt oder aufgeräumt werden muss.
OTP- & 2FA-Verifizierungstests
Löse ein Login oder Passwort-Reset aus, frage den Posteingang ab und hole den 6-stelligen Code mit einem einzigen Regex. Deine Ruby-E-Mail-Verifizierungstests laufen vollständig unbeaufsichtigt.
CI/CD-Pipelines
Weil es nur net/http und ein API-Schlüssel ist, funktioniert Wegwerf-E-Mail in Ruby auf deinem Laptop genauso wie in GitHub Actions oder GitLab CI – kein SMTP-Server und keine Browser-Automatisierung zu pflegen.
Aktivierungslinks auslesen
Greife auf den vollständigen Text oder das HTML einer Nachricht zu und extrahiere Magic Links, Einladungstoken oder Aktivierungs-URLs, um mehrstufige Onboarding-Abläufe programmatisch abzuschließen.
Der Ablauf — Ruby Temp Mail in 3 Aufrufen
Wegwerf-Posteingang erstellen
require "net/http"
require "json"
# Create a temp inbox that self-destructs after 30 minutes.
def create_inbox
uri = URI("https://evilmail.pro/api/temp-email")
req = Net::HTTP::Post.new(uri)
req["X-API-Key"] = ENV.fetch("EVILMAIL_KEY")
req["Content-Type"] = "application/json"
req.body = { ttlMinutes: 30 }.to_json
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request(req)
end
data = JSON.parse(res.body).fetch("data")
[data["email"], data["sessionToken"]]
end
email, token = create_inbox
puts "Waiting for mail at #{email}"Abfragen, bis die E-Mail ankommt
require "net/http"
require "json"
# Poll the inbox until a message lands (or we give up).
def wait_for_message(token, tries: 20, delay: 3)
uri = URI("https://evilmail.pro/api/temp-email/#{token}")
tries.times do
req = Net::HTTP::Get.new(uri)
req["X-API-Key"] = ENV.fetch("EVILMAIL_KEY")
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request(req)
end
msgs = JSON.parse(res.body).dig("data", "messages") || []
return msgs.first unless msgs.empty?
sleep delay # wait before the next attempt
end
raise "No message arrived in time"
end
message = wait_for_message(token)
puts "Got: #{message['subject']} (uid #{message['uid']})"Nachricht lesen & Code extrahieren
require "net/http"
require "json"
# Fetch the full body and pull out a 6-digit OTP.
def extract_code(uid, token)
uri = URI("https://evilmail.pro/api/message/#{uid}?token=#{token}")
req = Net::HTTP::Get.new(uri)
req["X-API-Key"] = ENV.fetch("EVILMAIL_KEY")
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request(req)
end
body = JSON.parse(res.body).fetch("data")
# First standalone 6-digit number, from text then html.
body["text"].to_s[/\b(\d{6})\b/, 1] ||
body["html"].to_s[/\b(\d{6})\b/, 1]
end
otp = extract_code(message["uid"], token)
puts "Verification code: #{otp}"Ruby Temp Mail — FAQ
Q1Wie bekomme ich eine Temp-Mail-Adresse in Ruby?−
Sende einen POST-Request 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 eingehende Mails abfragst und liest. Das Hero-Snippet oben macht genau das in rund einem Dutzend Zeilen net/http.
Q2Kann ich das für automatisierte Tests nutzen?+
Ja – das ist der Hauptanwendungsfall. Weil es reines HTTP ohne Browser- oder SMTP-Abhängigkeit ist, fügt es sich sauber in RSpec, Minitest oder jeden CI-Job ein. Erstelle einen Posteingang, löse die zu testende E-Mail aus, frage ab, bis sie ankommt, und prüfe Betreff, Nachrichtentext oder den extrahierten Code. Es funktioniert auf einem Laptop identisch wie in GitHub Actions oder GitLab CI.
Q3Wie extrahiere ich das OTP?+
Lies die Nachricht per GET /api/message/{uid}?token={sessionToken} und führe dann einen Regex über data.text (oder data.html) aus. Ein standardmäßiger 6-stelliger Einmalcode passt auf /\b(\d{6})\b/ – nutze body["text"].to_s[/\b(\d{6})\b/, 1], um die erste Übereinstimmung zu erfassen. Für Magic Links oder Token tausche das Muster gegen eines aus, das zu deinem URL- oder Token-Format passt.
Q4Brauche ich einen API-Schlüssel / gibt es Rate Limits?+
Ja, jeder Request braucht einen X-API-Key-Header – lies ihn aus einer Umgebungsvariable wie ENV.fetch("EVILMAIL_KEY") und schreibe ihn niemals fest in den Quellcode. Requests sind pro Schlüssel rate-limitiert; das Polling-Beispiel nutzt ein Intervall von 3 Sekunden, was für Tests und OTP-Abläufe bequem innerhalb der Limits bleibt.
Q5Wie lange lebt der Posteingang?+
Du steuerst die Lebensdauer mit ttlMinutes beim Erstellen des Posteingangs – das Beispiel nutzt 30 Minuten. Sobald die TTL abläuft, werden die Adresse und ihre Nachrichten automatisch verworfen, sodass nichts aufzuräumen ist. Für länger laufende Suites fordere eine größere TTL an oder erstelle einfach pro Testfall einen frischen Posteingang.
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.

