REST API Mail.td dirancang untuk pengujian end-to-end — memverifikasi pendaftaran, reset kata sandi, dan workflow yang dipicu email berperilaku benar. Panduan ini berfokus pada pola integrasi untuk alat tes umum.
Untuk referensi endpoint mentah (format request/response), lihat halaman API atau docs.mail.td.
Selenium / Playwright / Cypress
Pola: buat kotak baru sebelum setiap tes, daftarkan aplikasi Anda dengan alamat itu, lalu polling API untuk email verifikasi.
// Pseudokode — beradaptasi ke kerangka tes apa pun
async function signUpFlow(page) {
// 1. Buat kotak temporer
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. Daftarkan app dengan mailbox.address
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// 3. Polling untuk email verifikasi (hingga 30 detik)
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) {
// Respons daftar tidak menyertakan body — ambil detail pesan untuk 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
Untuk GitHub Actions, GitLab CI, CircleCI, atau pipeline mana pun:
- Simpan satu token API sebagai rahasia CI (rotasi dari dasbor jika bocor)
- Setiap job tes membuat kotak sendiri — hindari race condition antar job paralel
- Gunakan alamat unik per tes (mis.
test-${RUN_ID}-${TEST_ID}@mail.td) untuk memudahkan debug kegagalan - Tidak perlu pembersihan — kotak kedaluwarsa otomatis, tidak butuh skrip cleanup
Webhook untuk pipeline lebih cepat (Pro)
Polling menambah latensi setiap tes. Untuk suite tes panjang, daftarkan URL webhook yang menerima POST saat email baru tiba. Tes menunggu pengiriman webhook alih-alih polling 30 kali. Memotong tunggu 5–15 detik biasa menjadi kurang dari 1 detik.
Webhook ditandatangani dengan HMAC-SHA256 — verifikasi header tanda tangan sebelum memproses.
Instalasi SDK
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
Referensi endpoint lengkap: mail.td/api.