L'API REST de Mail.td est conçue pour les tests bout en bout — vérifier que les inscriptions, réinitialisations de mot de passe et workflows déclenchés par e-mail se comportent correctement. Ce guide se concentre sur les schémas d'intégration pour les outils de test courants.
Pour la référence brute des endpoints (formats requête/réponse), voir la page API ou docs.mail.td.
Selenium / Playwright / Cypress
Le schéma : créer une boîte fraîche avant chaque test, inscrire votre app avec cette adresse, puis interroger l'API pour l'e-mail de vérification.
// Pseudocode — adaptable à n'importe quel framework de test
async function signUpFlow(page) {
// 1. Créer une boîte temporaire
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. Inscrire votre app avec mailbox.address
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// 3. Polling pour l'e-mail de vérification (jusqu'à 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 réponse de liste n'a pas de corps — récupérez le détail du message pour 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
Pour GitHub Actions, GitLab CI, CircleCI ou n'importe quel pipeline :
- Stockez un token API comme secret CI (rotez-le depuis le tableau de bord en cas de fuite)
- Chaque job de test crée sa propre boîte — évite les races entre jobs parallèles
- Utilisez une adresse unique par test (ex.
test-${RUN_ID}-${TEST_ID}@mail.td) pour faciliter le débogage des échecs - Pas besoin de nettoyer — les boîtes expirent automatiquement, aucun script de nettoyage requis
Webhooks pour des pipelines plus rapides (Pro)
Le polling ajoute de la latence à chaque test. Pour de longues suites, enregistrez une URL webhook qui reçoit un POST à l'arrivée d'un nouvel e-mail. Votre test attend la livraison du webhook au lieu de poller 30 fois. Réduit une attente typique de 5–15 secondes à moins d'1 seconde.
Les webhooks sont signés avec HMAC-SHA256 — vérifiez l'en-tête de signature avant traitement.
Installation du SDK
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
Pour la référence complète des endpoints, voir mail.td/api.