Тимчасова пошта
на Python.
Одноразові поштові скриньки для Python — у три рядки на requests.
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"])Створюйте тимчасову пошту в Python щоразу, коли вашим тестам, CI-завданням чи скриптам потрібна одноразова скринька — без SMTP-сервера й ручних кліків. EvilMail дає простий HTTP API, який можна викликати бібліотекою requests, щоб створити одноразову адресу, опитувати її на нові листи та витягнути посилання для реєстрації або 6-значний OTP. Він створений для розробників, які автоматизують тестування підтвердження email: зареєструйте фейкового користувача, дочекайтеся листа-підтвердження, витягніть код і перевірте його — усе в одній Python-функції, що працює однаково локально та у вашому конвеєрі.
Навіщо використовувати тимчасову пошту на Python
Наскрізні тести реєстрації
Зареєструйте новий акаунт на справжню тимчасову скриньку, дочекайтеся вітального листа чи підтвердження й перевірте, що весь потік працює. Без спільної командної скриньки та ненадійних ручних кроків.
Автоматизація OTP і 2FA
Ініціюйте вхід або скидання пароля, опитуйте скриньку й витягніть 6-значний код регулярним виразом прямо з тіла листа, щоб ваш набір тестів проходив перевірку без участі людини.
CI-конвеєри
Зчитуйте ключ API зі змінної середовища й виконуйте ті самі перевірки email у GitHub Actions, GitLab CI або Jenkins, що й на своєму ноутбуці.
Скрейпінг і одноразові реєстрації
Генеруйте свіжу одноразову адресу на кожен запуск, щоб реєструватися в сервісах, потрібних лише раз, зберігаючи свою справжню скриньку чистою й без обмежень швидкості.
Процес — тимчасова пошта Python за 3 виклики
Створіть одноразову скриньку
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)Опитуйте, доки не надійде лист
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"])Прочитайте лист і витягніть код
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 — FAQ
Q1Як отримати адресу тимчасової пошти в Python?−
Надішліть POST-запит на https://evilmail.pro/api/temp-email із заголовком X-API-Key та JSON-тілом на кшталт {"ttlMinutes": 30}. Відповідь містить data.email (одноразову адресу) і data.sessionToken, який ви використовуєте для кожного наступного виклику. Сніпет із hero-блоку вище робить саме це приблизно в десяток рядків за допомогою бібліотеки requests.
Q2Чи можна використовувати це для автоматизованого тестування?+
Так — це основний сценарій використання. Зчитуйте ключ зі змінної середовища, створюйте скриньку у тестовій фікстурі, ініціюйте лист, який тестуєте, а потім опитуйте скриньку й перевіряйте тему, тіло або витягнутий код. Це працює однаково на вашій машині та в CI (GitHub Actions, GitLab, Jenkins), тож потоки, залежні від email, більше не будуть ненадійними ручними кроками.
Q3Як витягнути OTP?+
Отримайте лист через GET /api/message/{uid}?token={sessionToken} і застосуйте регулярний вираз до data.text (або data.html). Стандартний 6-значний одноразовий код відповідає шаблону \b(\d{6})\b. Сніпет із кроку 3 показує повний хелпер читання й витягання, що повертає код у вигляді рядка.
Q4Чи потрібен ключ API і чи є обмеження швидкості?+
Кожен запит вимагає заголовка X-API-Key, тож вам знадобиться ключ із вашої панелі EvilMail — зберігайте його у змінній середовища (EVILMAIL_KEY), ніколи не прописуйте в коді. До кожного ключа застосовуються розумні обмеження швидкості для запобігання зловживанням; під час опитування 3-секундний інтервал із прикладів комфортно вкладається в них. Точні квоти дивіться у своєму тарифі.
Q5Скільки живе скринька?+
Ви керуєте цим значенням ttlMinutes, яке передаєте під час створення скриньки (30 хвилин у прикладах). Щойно TTL спливає, адреса та її листи видаляються, тож створюйте свіжу скриньку на кожен тестовий запуск чи завдання, а не використовуйте одну тривалий час.
Тимчасова пошта іншими мовами
Один ключ API. Одноразові скриньки в масштабі.
Створюйте необмежену кількість тимчасових адрес, опитуйте їх через HTTP і витягуйте коди підтвердження прямо у ваші тести й CI. Безкоштовний старт; власні домени та вищі ліміти на платних тарифах.

