L'API REST di Mail.td è progettata per i test end-to-end — verificare che iscrizioni, reset password e workflow innescati da e-mail si comportino correttamente. Questa guida si concentra sui pattern di integrazione per i tool di test comuni.
Per il riferimento grezzo degli endpoint (formati richiesta/risposta), vedi la pagina API o docs.mail.td.
Selenium / Playwright / Cypress
Il pattern: crea una casella nuova prima di ogni test, registra la tua app con quell'indirizzo e poi interroga l'API per la mail di verifica.
// Pseudocodice — adattabile a qualsiasi framework di test
async function signUpFlow(page) {
// 1. Crea casella temporanea
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. Registra l'app con mailbox.address
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// 3. Polling per la mail di verifica (fino a 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) {
// La risposta della lista non include il body — recupera il dettaglio per 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));
}
}
Pipeline CI/CD
Per GitHub Actions, GitLab CI, CircleCI o qualsiasi pipeline:
- Memorizza un token API come segreto CI (ruotalo dal pannello in caso di leak)
- Ogni job di test crea la propria casella — evita race tra job paralleli
- Usa un indirizzo unico per test (es.
test-${RUN_ID}-${TEST_ID}@mail.td) per facilitare il debug - Niente da pulire — le caselle scadono in automatico, nessuno script di cleanup
Webhook per pipeline più rapide (Pro)
Il polling aggiunge latenza a ogni test. Per suite lunghe, registra una URL webhook che riceve un POST all'arrivo di una nuova mail. Il test attende la consegna del webhook invece di pollare 30 volte. Riduce un'attesa tipica di 5–15 secondi a meno di 1.
I webhook sono firmati con HMAC-SHA256 — verifica l'header di firma prima di processare.
Installazione SDK
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
Riferimento completo degli endpoint: mail.td/api.