REST API Mail.td jest zaprojektowane do testów end-to-end — weryfikacji, że rejestracje, resety hasła i workflow wyzwalane e-mailem zachowują się poprawnie. Ten przewodnik skupia się na wzorcach integracji dla popularnych narzędzi testowych.
Dla surowego odniesienia endpointu (formaty żądania/odpowiedzi) zobacz stronę API lub docs.mail.td.
Selenium / Playwright / Cypress
Wzorzec: utwórz nową skrzynkę przed każdym testem, zarejestruj aplikację z tym adresem, a następnie odpytuj API o e-mail weryfikacyjny.
// Pseudokod — adaptuje się do dowolnego frameworka testowego
async function signUpFlow(page) {
// 1. Utwórz tymczasową skrzynkę
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. Zarejestruj aplikację z mailbox.address
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// 3. Polluj e-mail weryfikacyjny (do 30s)
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) {
// Odpowiedź listy nie zawiera body — pobierz szczegóły wiadomości, aby uzyskać 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));
}
}
Potoki CI/CD
Dla GitHub Actions, GitLab CI, CircleCI lub dowolnego potoku:
- Przechowuj jeden token API jako sekret CI (rotuj z panelu po wycieku)
- Każde zadanie testowe tworzy własną skrzynkę — zapobiega race condition między równoległymi zadaniami
- Używaj unikalnego adresu na test (np.
test-${RUN_ID}-${TEST_ID}@mail.td), by ułatwić debugowanie awarii - Brak potrzeby czyszczenia — skrzynki wygasają automatycznie, brak skryptu czyszczącego
Webhooki dla szybszych potoków (Pro)
Polling dodaje opóźnienie do każdego testu. Dla długich zestawów testowych zarejestruj URL webhooka, który otrzymuje POST gdy nowy e-mail dociera. Twój test czeka na dostarczenie webhooka zamiast pollingu 30 razy. Skraca typowe oczekiwanie 5–15 sekund do mniej niż 1 sekundy.
Webhooki są podpisane HMAC-SHA256 — zweryfikuj nagłówek podpisu przed przetwarzaniem.
Instalacja SDK
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
Pełne odniesienie endpointu zobacz mail.td/api.