Geçici mail
Java ile.
Java'da tek bir HTTP çağrısıyla tek kullanımlık e-posta kutuları.
var http = HttpClient.newHttpClient();
var req = HttpRequest.newBuilder()
.uri(URI.create("https://evilmail.pro/api/temp-email"))
.header("X-API-Key", System.getenv("EVILMAIL_KEY"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{\"ttlMinutes\":30}"))
.build();
var body = http.send(req, HttpResponse.BodyHandlers.ofString()).body();
// body -> {"data":{"email":"...","sessionToken":"..."}}
var email = body.replaceAll("(?s).*\"email\":\"([^\"]+)\".*", "$1");
System.out.println("Inbox: " + email);Java'da geçici bir e-posta kutusu oluşturmak eskiden ya bir web arayüzünü kazımak ya da kendi SMTP catch-all sunucunuzu ayağa kaldırmak anlamına gelirdi — EvilMail ile bu tek bir HTTP isteğinden ibaret. Bu sayfa, Java'da geçici e-postayı yalnızca yerleşik java.net.http.HttpClient kullanarak nasıl yapacağınızı gösteriyor: tek kullanımlık bir gelen kutusu oluşturun, doğrulama e-postası gelene kadar sorgulayın, ardından mesajı okuyup OTP'yi çıkarın. Bu tam olarak CI'da e-posta doğrulama testlerini otomatikleştirmek, kayıt akışlarını uçtan uca çalıştırmak ya da gerçek bir posta kutusuna hiç dokunmadan parola sıfırlama kodlarını QA'den geçirmek için ihtiyacınız olan şeydir. SDK yok, bağımlılık yok — yalnızca geçici e-posta API'si ve herhangi bir JUnit ya da entegrasyon paketine ekleyebileceğiniz düz HTTP.
Java ile neden geçici mail kullanmalısınız
Uçtan uca kayıt testleri
Kayıt akışlarının asla çakışmaması için her test çalıştırmasında yeni bir tek kullanımlık gelen kutusu oluşturun. Devam etmeden önce karşılama veya onay e-postasının gerçekten geldiğini doğrulayın.
CI'da OTP ve doğrulama kodları
Gelen kutusunu JUnit veya entegrasyon paketinizden sorgulayın ve 6 haneli kodu doğrudan gövdeden regex ile çekin. Java e-posta doğrulama testi tamamen headless ve tekrarlanabilir hale gelir.
Parola sıfırlama QA'si
Bir sıfırlama tetikleyin, Java'da geçici e-postayı yakalayın ve token'lı bağlantıyı izleyin — test gürültüsüyle dolan ortak bir ekip posta kutusu olmadan tüm döngüyü doğrulayın.
Kazıyıcılar ve botlar için tek kullanımlık kutular
Bir iş akışı geçici bir adrese ihtiyaç duyduğunda, kısa bir TTL ile anında bir tane oluşturun. Gelen kutusu kendiliğinden sona erer, dolayısıyla sonrasında temizlenecek hiçbir şey kalmaz.
Akış — 3 çağrıda Java geçici mail
Tek kullanımlık gelen kutusu oluştur
import java.net.URI;
import java.net.http.*;
var http = HttpClient.newHttpClient();
var key = System.getenv("EVILMAIL_KEY"); // never hard-code
var create = HttpRequest.newBuilder()
.uri(URI.create("https://evilmail.pro/api/temp-email"))
.header("X-API-Key", key)
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{\"ttlMinutes\":30}"))
.build();
var body = http.send(create,
HttpResponse.BodyHandlers.ofString()).body();
// {"data":{"email":"..","sessionToken":".."}}
var email = body.replaceAll("(?s).*\"email\":\"([^\"]+)\".*", "$1");
var token = body.replaceAll(
"(?s).*\"sessionToken\":\"([^\"]+)\".*", "$1");
System.out.println("Inbox " + email + " (token " + token + ")");
E-posta gelene kadar sorgula
import java.util.regex.Pattern;
// Poll up to 20 times, 3s apart, until a message lands.
int uid = -1;
for (int i = 0; i < 20 && uid < 0; i++) {
var poll = HttpRequest.newBuilder()
.uri(URI.create(
"https://evilmail.pro/api/temp-email/" + token))
.header("X-API-Key", key)
.build();
var body = http.send(poll,
HttpResponse.BodyHandlers.ofString()).body();
// messages[] carries a "uid" once mail arrives
var m = Pattern.compile("\"uid\":(\\d+)").matcher(body);
if (m.find()) { // first (newest) message
uid = Integer.parseInt(m.group(1));
break;
}
Thread.sleep(3000); // wait before the next attempt
}
if (uid < 0) throw new RuntimeException("No mail after ~60s");
System.out.println("Got message uid=" + uid);
Mesajı oku ve kodu çıkar
import java.util.regex.Pattern;
var read = HttpRequest.newBuilder()
.uri(URI.create("https://evilmail.pro/api/message/" + uid
+ "?token=" + token))
.header("X-API-Key", key)
.build();
var body = http.send(read,
HttpResponse.BodyHandlers.ofString()).body();
// data.text holds the plain-text body
var text = body.replaceAll(
"(?s).*\"text\":\"([^\"]*)\".*", "$1");
// A 6-digit OTP: \b(\d{6})\b
var otp = Pattern.compile("\\b(\\d{6})\\b").matcher(text);
if (otp.find()) System.out.println("Code: " + otp.group(1));
else System.out.println("No 6-digit code found");
Java geçici mail — SSS
Q1Java'da geçici bir e-posta adresini nasıl alırım?−
https://evilmail.pro/api/temp-email adresine, X-API-Key başlığınız ve {"ttlMinutes":30} gibi bir JSON gövdesiyle bir POST gönderin. Yanıt, data.email (adres) ve mesajları sorgulamak ve okumak için sakladığınız data.sessionToken değerini döndürür. Yukarıdaki hero kod parçası, yerleşik java.net.http.HttpClient kullanarak tam olarak bunu yapar — harici bir SDK gerektirmez.
Q2Bunu otomatik testler için kullanabilir miyim?+
Evet, asıl kullanım amacı budur. Her şey düz HTTP olduğu için, bir JUnit veya entegrasyon testinin başında bir gelen kutusu oluşturabilir, uygulamanızın e-postasını tetikleyebilir, gelene kadar sorgulayabilir ve içeriği üzerinde doğrulama yapabilirsiniz. Paralel çalıştırmaların asla durum paylaşmaması için her test çalıştırmasına kendi gelen kutusunu verin ve derlemeler arasında hiçbir şey kalmaması için kısa bir TTL kullanın.
Q3OTP'yi nasıl çıkarırım?+
Mesajı GET /api/message/{uid}?token={sessionToken} ile getirin, ardından data.text (veya data.html) üzerinde bir regex çalıştırın. Standart bir 6 haneli kod \b(\d{6})\b ile eşleşir. Yukarıdaki çıkarma adımı bu deseni derler ve ilk eşleşmeyi yazdırır — bağlantılar veya farklı biçimlendirilmiş kodlar için kendi deseninizi kullanın.
Q4Bir API anahtarına ihtiyacım var mı / hız sınırları var mı?+
Evet, her istek bir X-API-Key başlığı göndermelidir; bunu sabit kodlamak yerine EVILMAIL_KEY gibi bir ortam değişkeninden okuyun. İstekler anahtar başına hız sınırlıdır, bu yüzden uç noktayı sıkı bir döngüde zorlamak yerine sorgular arasına küçük bir bekleme ekleyin (örnek 3 saniye bekliyor).
Q5Gelen kutusu ne kadar süre yaşar?+
Bunu, gelen kutusunu oluştururken ttlMinutes alanıyla kontrol edersiniz — bu örneklerde 30 dakika. TTL süresi dolduğunda adres ve mesajları otomatik olarak sona erer, böylece tek kullanımlık gelen kutuları kendilerini temizler ve bir test çalıştırmasından sonra sökülecek hiçbir şey kalmaz.
Diğer dillerde geçici mail
Tek bir API anahtarı. Ölçekte tek kullanımlık gelen kutuları.
Sınırsız tek kullanımlık adres oluşturun, bunları HTTP üzerinden sorgulayın ve doğrulama kodlarını doğrudan testlerinize ve CI'nıza çekin. Başlaması ücretsiz; özel alan adları ve daha yüksek limitler ücretli planlarda.

