La API REST de Mail.td está diseñada para pruebas end-to-end — verificar que registros, restablecimientos de contraseña y workflows desencadenados por correo se comportan correctamente. Esta guía se centra en patrones de integración para herramientas de pruebas comunes.
Para la referencia bruta de endpoints (formas de petición/respuesta), ver la página de API o docs.mail.td.
Selenium / Playwright / Cypress
El patrón: crear una bandeja nueva antes de cada prueba, registrar tu app con esa dirección, después hacer polling de la API por el correo de verificación.
// Pseudocódigo — adaptable a cualquier framework de pruebas
async function signUpFlow(page) {
// 1. Crear bandeja temporal
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 tu app con mailbox.address
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// 3. Polling por el correo de verificación (hasta 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 respuesta de listado no trae el cuerpo — pide el detalle del mensaje para el 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 o cualquier pipeline:
- Guarda un token API como secreto de CI (rótalo desde el panel si se filtra)
- Cada job de prueba crea su propia bandeja — evita race conditions entre jobs paralelos
- Usa una dirección única por prueba (p. ej.,
test-${RUN_ID}-${TEST_ID}@mail.td) para depurar fallos más fácil - No hace falta limpiar — las bandejas caducan automáticamente, no se necesita script de limpieza
Webhooks para pipelines más rápidos (Pro)
El polling añade latencia a cada prueba. Para suites de pruebas largas, registra una URL webhook que reciba un POST cuando llega correo nuevo. Tu prueba espera la entrega del webhook en lugar de hacer polling 30 veces. Reduce una espera típica de 5–15 segundos a menos de 1 segundo.
Los webhooks están firmados con HMAC-SHA256 — verifica el header de firma antes de procesar.
Instalación de SDK
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
Para la referencia completa de endpoints, ver mail.td/api.