Geçici mail
PHP ile.
PHP ile geçici gelen kutuları ve OTP çıkarma — düz curl, SDK yok.
<?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]Birkaç satır curl ile PHP'de geçici e-posta oluşturun: EvilMail API, tek kullanımlık bir gelen kutusu oluşturmanıza, bir mesaj gelene kadar onu yoklamanıza ve 6 haneli bir kodu doğrudan gövdeden çekmenize olanak tanır. Gerçek bir posta kutusu kurmadan kayıt akışlarını test etmesi, OTP e-postalarını doğrulaması veya CI içinde e-posta kontrolleri çalıştırması gereken geliştiriciler için tasarlanmıştır. Her şey X-API-Key başlığıyla düz HTTP olduğundan, PHP geçici e-posta hiçbir ek bağımlılık olmadan herhangi bir betiğe, test paketine veya worker'a rahatça yerleşir.
PHP ile neden geçici mail kullanmalısınız
Otomatik kayıt ve OTP testi
Her test çalışması için taze bir tek kullanımlık gelen kutusu kaydedin, ardından doğrulama e-postasını geri okuyup 6 haneli kodu çıkarın. Paylaşılan posta kutusu yok, testler arası kirlilik yok.
CI/CD e-posta doğrulaması
Uçtan uca e-posta kontrollerini pipeline'ınızın içinde çalıştırın. Sadece HTTPS üzerinden curl olduğu için, PHP geçici e-posta hem dizüstünüzde hem de bir CI runner'ında aynı şekilde çalışır.
İşlemsel postanın kazımasız QA'si
Bir parola sıfırlama veya hoş geldin e-postası tetikleyin ve konusunu, göndericisini ve gövde metnini doğrudan PHP'den doğrulayın — IMAP kurulumu ya da manuel gelen kutusu kontrolü yok.
PHP'de tek seferlik tek kullanımlık e-posta
Bir form veya demo hesabı için tek kullanımlık bir adres mi lazım? Bir TTL ile gelen kutusu oluşturun, kullanın ve kendiliğinden sona ermesine izin verin. Temizlenecek hiçbir şey yok.
Akış — 3 çağrıda PHP geçici mail
Tek kullanımlık bir gelen kutusu oluşturun
<?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";E-posta gelene kadar yoklayın
<?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";Mesajı okuyun ve kodu çıkarın
<?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 geçici mail — SSS
Q1PHP'de nasıl geçici e-posta adresi alırım?−
X-API-Key başlığınız ve {"ttlMinutes": 30} gibi bir JSON gövdesiyle https://evilmail.pro/api/temp-email adresine bir POST isteği gönderin. Yanıt, gelen mesajları yoklamak için kullanacağınız data.email (tek kullanımlık adres) ve data.sessionToken değerlerini içerir. Yukarıdaki hero snippet'i tam olarak bunu yaklaşık on satır curl ile yapar.
Q2Bunu otomatik test için kullanabilir miyim?+
Evet — birincil kullanım senaryosu budur. Her çağrı bir API anahtarıyla düz HTTPS olduğundan, bir gelen kutusu oluşturabilir, onu yoklayabilir ve gelen e-postayı PHPUnit'ten, bir Behat paketinden veya bir CI işinden doğrulayabilirsiniz. Çalışmaları izole tutmak ve testler arası artık mesajlardan kaçınmak için her test için taze bir gelen kutusu oluşturun.
Q3OTP'yi e-postadan nasıl çıkarırım?+
Mesajı GET /api/message/{uid}?token={sessionToken} ile alın, data.text (veya data.html) okuyun ve üzerinde bir regex çalıştırın. Standart 6 haneli tek kullanımlık bir kod için, preg_match('/\b(\d{6})\b/', $body, $m) kodu $m[1] içinde döndürür. Kodlarınız farklı bir uzunluk veya biçim kullanıyorsa deseni ayarlayın.
Q4Bir API anahtarına ihtiyacım var mı ve hız sınırları var mı?+
Evet, her istek X-API-Key başlığını içermelidir — bunu kodun içine gömmek yerine EVILMAIL_KEY gibi bir ortam değişkeninden okuyun. İstekler anahtar başına hız sınırlıdır; adım 2'deki yoklama döngüsü (yaklaşık 20 deneme, 3 saniye arayla) normal sınırların rahatça içinde kalır. Bir 429 alırsanız geri çekilip yeniden deneyin.
Q5Gelen kutusu ne kadar yaşar?+
Gelen kutusunu oluştururken ttlMinutes alanıyla bunu siz kontrol edersiniz — örneklerde 30 dakika. TTL süresi dolduğunda adres ve mesajları otomatik olarak atılır, yani temizlenecek hiçbir şey yoktur. Daha yavaş akışlar için daha uzun bir TTL, hızlı tek kullanımlık kontroller için kısa bir TTL ayarlayın.
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.

