Geçici mail
Python ile.
Python için tek kullanımlık gelen kutuları, üç satırlık requests ile.
import os
import requests
API = "https://evilmail.pro"
headers = {"X-API-Key": os.environ["EVILMAIL_KEY"]}
# Create a disposable inbox that lives for 30 minutes
resp = requests.post(
f"{API}/api/temp-email",
headers={**headers, "Content-Type": "application/json"},
json={"ttlMinutes": 30},
timeout=15,
)
resp.raise_for_status()
data = resp.json()["data"]
print("Inbox:", data["email"])
print("Token:", data["sessionToken"])Testleriniz, CI görevleriniz veya betikleriniz tek kullanımlık bir gelen kutusuna ihtiyaç duyduğunda Python'da geçici mail'i anında oluşturun — SMTP sunucusu yok, elle tıklama yok. EvilMail size requests kütüphanesiyle çağırabileceğiniz basit bir HTTP API sunar; tek kullanımlık bir adres oluşturun, gelen postaları için onu sorgulayın ve bir kayıt bağlantısını ya da 6 haneli bir OTP'yi çekip alın. E-posta doğrulama testlerini otomatikleştiren geliştiriciler için tasarlandı: sahte bir kullanıcı kaydedin, onay e-postasını bekleyin, kodu çıkarın ve üzerinde assert yapın — hepsi hem yerelde hem de pipeline'ınızda aynı şekilde çalışan tek bir Python fonksiyonunun içinde.
Python ile neden geçici mail kullanmalısınız
Uçtan uca kayıt testleri
Gerçek bir geçici posta kutusuna karşı yeni bir hesap kaydedin, karşılama veya onay e-postasını bekleyin ve akışın çalıştığını doğrulayın. Ortak ekip gelen kutusu yok, kırılgan elle adımlar yok.
OTP ve 2FA otomasyonu
Bir giriş veya parola sıfırlama tetikleyin, gelen kutusunu sorgulayın ve mesaj gövdesinden 6 haneli kodu regex ile doğrudan alın; böylece test paketiniz doğrulamayı gözetimsiz tamamlayabilir.
CI pipeline'ları
API anahtarını bir ortam değişkeninden okuyun ve dizüstünüzde çalıştırdığınız aynı e-posta kontrollerini GitHub Actions, GitLab CI veya Jenkins'te bire bir aynı şekilde çalıştırın.
Scraping ve tek seferlik kayıtlar
Yalnızca bir kez ihtiyaç duyduğunuz servislere kaydolmak için her çalıştırmada taze bir tek kullanımlık adres oluşturun; böylece gerçek gelen kutunuz temiz ve hız sınırından uzak kalır.
Akış — 3 çağrıda Python geçici mail
Tek kullanımlık bir gelen kutusu oluşturun
import os
import requests
API = "https://evilmail.pro"
KEY = os.environ["EVILMAIL_KEY"]
def create_inbox(ttl_minutes=30):
"""Return (email, session_token) for a fresh inbox."""
resp = requests.post(
f"{API}/api/temp-email",
headers={
"X-API-Key": KEY,
"Content-Type": "application/json",
},
json={"ttlMinutes": ttl_minutes},
timeout=15,
)
resp.raise_for_status()
data = resp.json()["data"]
return data["email"], data["sessionToken"]
email, token = create_inbox()
print("Send mail to:", email)E-posta gelene kadar sorgulayın
import time
import requests
def wait_for_message(token, attempts=20, delay=3):
"""Poll the inbox until at least one message shows up."""
for _ in range(attempts):
resp = requests.get(
f"{API}/api/temp-email/{token}",
headers={"X-API-Key": KEY},
timeout=15,
)
resp.raise_for_status()
messages = resp.json()["data"]["messages"]
if messages:
return messages[0] # newest message
time.sleep(delay)
raise TimeoutError("No email arrived in time")
msg = wait_for_message(token)
print("Got:", msg["subject"], "from", msg["from"])Mesajı okuyun ve kodu çıkarın
import re
import requests
def read_message(uid, token):
resp = requests.get(
f"{API}/api/message/{uid}",
headers={"X-API-Key": KEY},
params={"token": token},
timeout=15,
)
resp.raise_for_status()
return resp.json()["data"]
def extract_otp(text):
match = re.search(r"\b(\d{6})\b", text or "")
return match.group(1) if match else None
body = read_message(msg["uid"], token)
otp = extract_otp(body["text"])
print("OTP:", otp)Python geçici mail — SSS
Q1Python'da nasıl geçici mail adresi 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 isteği gönderin. Yanıt, data.email (tek kullanımlık adres) ve her takip çağrısında kullanacağınız data.sessionToken değerini içerir. Yukarıdaki hero kod parçası, requests kütüphanesiyle bunu yaklaşık on iki satırda tam olarak yapar.
Q2Bunu otomatik test için kullanabilir miyim?+
Evet — asıl kullanım alanı bu. Anahtarınızı bir ortam değişkeninden okuyun, bir test fixture'ında gelen kutusu oluşturun, test edilen e-postayı tetikleyin, ardından gelen kutusunu sorgulayıp konu, gövde veya çıkarılan kod üzerinde assert yapın. Makinenizde ve CI'da (GitHub Actions, GitLab, Jenkins) bire bir aynı şekilde çalışır; böylece e-postaya bağlı akışlar artık kırılgan elle adımlar olmaktan çıkar.
Q3OTP'yi nasıl çıkarırım?+
Mesajı GET /api/message/{uid}?token={sessionToken} ile getirin ve data.text (veya data.html) üzerinde bir regex çalıştırın. Standart 6 haneli tek seferlik bir kod \b(\d{6})\b desenine uyar. 3. adımdaki kod parçası, kodu bir string olarak döndüren tam oku-ve-çıkar yardımcı fonksiyonunu gösterir.
Q4API anahtarına ihtiyacım var mı ve hız sınırları var mı?+
Her istek X-API-Key başlığını gerektirir, dolayısıyla EvilMail panelinizden bir anahtara ihtiyacınız olacak — bunu bir ortam değişkeninde (EVILMAIL_KEY) tutun, asla kod içine gömmeyin. Kötüye kullanımı önlemek için anahtar başına makul hız sınırları uygulanır; sorgulama yaparken örneklerde kullanılan 3 saniyelik aralık bu sınırların rahatça altında kalır. Tam kotalar için planınızı kontrol edin.
Q5Gelen kutusu ne kadar süre yaşar?+
Bunu, gelen kutusunu oluştururken verdiğiniz ttlMinutes değeriyle siz kontrol edersiniz (örneklerde 30 dakika). TTL sona erdiğinde adres ve mesajları silinir; bu yüzden bir gelen kutusunu uzun süre yeniden kullanmak yerine her test çalıştırması veya görev için taze bir tane oluşturun.
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.

