A API REST do Mail.td foi feita para testes end-to-end — verificar que cadastros, redefinições de senha e workflows acionados por e-mail funcionam corretamente. Este guia foca em padrões de integração para ferramentas de teste comuns.
Para referência crua de endpoints (formatos de requisição/resposta), veja a página de API ou docs.mail.td.
Selenium / Playwright / Cypress
O padrão: criar uma caixa nova antes de cada teste, cadastrar seu app com esse endereço, depois fazer polling da API pelo e-mail de verificação.
// Pseudocódigo — adaptável a qualquer framework de teste
async function signUpFlow(page) {
// 1. Criar caixa temporária
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. Cadastre seu app com mailbox.address
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// 3. Polling pelo e-mail de verificação (até 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) {
// A resposta da listagem não traz o corpo — busque o detalhe da mensagem para o 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));
}
}
Pipelines CI/CD
Para GitHub Actions, GitLab CI, CircleCI ou qualquer pipeline:
- Guarde um token de API como segredo de CI (rotacione do painel se vazar)
- Cada job de teste cria sua própria caixa — evita race conditions entre jobs paralelos
- Use um endereço único por teste (ex:
test-${RUN_ID}-${TEST_ID}@mail.td) para depurar falhas mais fácil - Não precisa limpar — caixas expiram automaticamente, sem script de limpeza
Webhooks para pipelines mais rápidos (Pro)
Polling adiciona latência a cada teste. Para suítes longas, registre uma URL de webhook que recebe um POST quando chega e-mail novo. Seu teste espera a entrega do webhook em vez de fazer polling 30 vezes. Reduz uma espera típica de 5–15 segundos para menos de 1 segundo.
Webhooks são assinados com HMAC-SHA256 — verifique o header de assinatura antes de processar.
Instalação do SDK
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
Para referência completa de endpoints, veja mail.td/api.