Тимчасова пошта
на PHP.
Одноразові поштові скриньки та отримання OTP на PHP — звичайний curl, без SDK.
<?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]Створіть тимчасову пошту на PHP за кілька рядків curl: API EvilMail дозволяє створити одноразову скриньку, опитувати її, доки не надійде повідомлення, і витягнути 6-значний код прямо з тіла листа. Він створений для розробників, яким потрібно тестувати процеси реєстрації, перевіряти OTP-листи або запускати перевірки email у CI без налаштування справжньої поштової скриньки. Усе працює на звичайному HTTP із заголовком X-API-Key, тож тимчасова пошта на PHP вбудовується в будь-який скрипт, набір тестів чи воркер без жодних додаткових залежностей.
Навіщо використовувати тимчасову пошту на PHP
Автоматичне тестування реєстрації та OTP
Реєструйте нову одноразову скриньку для кожного тестового запуску, потім зчитуйте лист підтвердження та витягуйте 6-значний код. Жодної спільної скриньки, жодного перетину даних між тестами.
Перевірка email у CI/CD
Запускайте наскрізні перевірки email прямо у вашому пайплайні. Оскільки це просто curl через HTTPS, тимчасова пошта на PHP працює однаково на вашому ноутбуку та на CI-раннері.
QA транзакційних листів без скрейпінгу
Запустіть скидання пароля чи вітальний лист і перевіряйте його тему, відправника та текст тіла прямо з PHP — без налаштування IMAP чи ручної перевірки скриньки.
Разова одноразова пошта на PHP
Потрібна тимчасова адреса для форми чи демо-акаунту? Створіть скриньку з TTL, скористайтеся нею та дайте їй самій завершитися. Нічого прибирати не треба.
Процес — тимчасова пошта PHP за 3 виклики
Створіть одноразову скриньку
<?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";Опитуйте, доки не надійде лист
<?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";Прочитайте повідомлення та витягніть код
<?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 — FAQ
Q1Як отримати адресу тимчасової пошти на PHP?−
Надішліть POST-запит на https://evilmail.pro/api/temp-email із заголовком X-API-Key та JSON-тілом на кшталт {"ttlMinutes": 30}. Відповідь містить data.email (одноразову адресу) та data.sessionToken, який ви використовуєте для опитування вхідних повідомлень. Наведений вище приклад робить саме це приблизно в десять рядків curl.
Q2Чи можна використовувати це для автоматичного тестування?+
Так — це основний сценарій. Оскільки кожен виклик — це звичайний HTTPS із API-ключем, ви можете створити скриньку, опитувати її та перевіряти отриманий лист із PHPUnit, набору Behat чи CI-завдання. Створюйте нову скриньку для кожного тесту, щоб ізолювати запуски та уникнути залишкових повідомлень між тестами.
Q3Як витягнути OTP із листа?+
Отримайте повідомлення через GET /api/message/{uid}?token={sessionToken}, прочитайте data.text (або data.html) і застосуйте до нього regex. Для стандартного 6-значного одноразового коду preg_match('/\b(\d{6})\b/', $body, $m) повертає код у $m[1]. Скоригуйте шаблон, якщо ваші коди мають іншу довжину чи формат.
Q4Чи потрібен API-ключ і чи є обмеження за частотою?+
Так, кожен запит має містити заголовок X-API-Key — зчитуйте його зі змінної середовища, наприклад EVILMAIL_KEY, а не прописуйте жорстко в коді. Запити обмежуються за частотою для кожного ключа; цикл опитування з кроку 2 (близько 20 спроб з інтервалом 3 секунди) комфортно вкладається у звичайні ліміти. Якщо отримаєте 429, зробіть паузу та повторіть спробу.
Q5Скільки живе скринька?+
Ви керуєте цим через поле ttlMinutes під час створення скриньки — у прикладах це 30 хвилин. Коли TTL завершується, адреса та її повідомлення автоматично видаляються, тож нічого прибирати не потрібно. Встановіть довший TTL для повільніших процесів або короткий для швидких разових перевірок.
Тимчасова пошта іншими мовами
Один ключ API. Одноразові скриньки в масштабі.
Створюйте необмежену кількість тимчасових адрес, опитуйте їх через HTTP і витягуйте коди підтвердження прямо у ваші тести й CI. Безкоштовний старт; власні домени та вищі ліміти на платних тарифах.

