REST API Mail.td создан для end-to-end тестирования — проверки регистраций, сбросов пароля и email-триггерных процессов. Этот гид сосредоточен на шаблонах интеграции для популярных инструментов тестирования.
Сырая ссылка эндпоинтов (форматы запросов/ответов) — на странице API или docs.mail.td.
Selenium / Playwright / Cypress
Шаблон: создать новый ящик перед каждым тестом, зарегистрировать ваше приложение с этим адресом, потом опросить API на письмо подтверждения.
// Псевдокод — адаптируется к любому фреймворку
async function signUpFlow(page) {
// 1. Создать временный ящик
const mailbox = await fetch("https://api.mail.td/api/accounts", {
method: "POST",
headers: {
Authorization: "Bearer td_xxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
address: `test-${Date.now()}@mail.td`,
password: "secret"
})
}).then(r => r.json());
// 2. Зарегистрировать приложение с mailbox.address
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// 3. Опрос на письмо подтверждения (до 30с)
for (let i = 0; i < 30; i++) {
const list = await fetch(
`https://api.mail.td/api/accounts/${mailbox.id}/messages`,
{ headers: { Authorization: "Bearer td_xxx" } }
).then(r => r.json());
if (list.messages.length > 0) {
// Список не возвращает тело — возьмите детали сообщения для text_body
const msg = await fetch(
`https://api.mail.td/api/accounts/${mailbox.id}/messages/${list.messages[0].id}`,
{ headers: { Authorization: "Bearer td_xxx" } }
).then(r => r.json());
const link = extractLink(msg.text_body);
await page.goto(link);
break;
}
await new Promise(r => setTimeout(r, 1000));
}
}
CI/CD пайплайны
Для GitHub Actions, GitLab CI, CircleCI или любого пайплайна:
- Храните один API-токен как CI-секрет (ротируйте из панели при утечке)
- Каждый job создаёт свой ящик — нет гонок между параллельными
- Уникальный адрес на тест (например,
test-${RUN_ID}-${TEST_ID}@mail.td) — легче отлаживать - Не нужно убирать — ящики авто-истекают, скрипта очистки не надо
Webhook-и для быстрых пайплайнов (Pro)
Опрос добавляет латенцию каждому тесту. Для долгих сьютов зарегистрируйте URL webhook-а, на который придёт POST при новом письме. Тест ждёт доставку webhook-а вместо 30 опросов. Сокращает типичные 5–15 секунд до меньше 1.
Webhook-и подписаны HMAC-SHA256 — проверяйте header подписи перед обработкой.
Установка SDK
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
Полный справочник эндпоинтов — на mail.td/api.