Mail.td REST API'si uçtan uca testler için tasarlandı — kayıtların, parola sıfırlamalarının ve e-posta tetikli iş akışlarının doğru davrandığını doğrulamak. Bu rehber yaygın test araçları için entegrasyon kalıplarına odaklanır.
Ham endpoint referansı (istek/yanıt formatları) için API sayfası veya docs.mail.td adresine bakın.
Selenium / Playwright / Cypress
Kalıp: her testten önce yeni bir gelen kutusu oluşturun, uygulamanızı bu adresle kaydedin, sonra API'yi doğrulama e-postası için yoklayın.
// Sözde kod — herhangi bir test çerçevesine uyarlanabilir
async function signUpFlow(page) {
// 1. Geçici gelen kutusu oluştur
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. Uygulamanızı mailbox.address ile kaydet
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// 3. Doğrulama e-postası için yoklama (30 saniyeye kadar)
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) {
// Liste yanıtında gövde yok — text_body almak için mesaj detayını çek
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));
}
}
CI/CD pipeline'ları
GitHub Actions, GitLab CI, CircleCI veya herhangi bir pipeline için:
- Bir API token'ını CI sırrı olarak saklayın (sızıntı durumunda panelden döndürün)
- Her test işi kendi gelen kutusunu oluşturur — paralel işler arasındaki yarış koşullarını önler
- Her test için benzersiz bir adres kullanın (örn.
test-${RUN_ID}-${TEST_ID}@mail.td), arızaların hata ayıklamasını kolaylaştırır - Temizlik gerekmez — gelen kutuları otomatik olarak sona erer, temizlik scripti gerekmez
Daha hızlı pipeline'lar için webhook'lar (Pro)
Yoklama her teste gecikme ekler. Uzun süreli test paketleri için yeni e-posta geldiğinde POST alan bir webhook URL'i kaydedin. Testiniz 30 kez yoklama yapmak yerine webhook teslimini bekler. Tipik bir 5–15 saniye beklemeyi 1 saniyenin altına indirir.
Webhook'lar HMAC-SHA256 ile imzalıdır — işlemden önce imza üst bilgisini doğrulayın.
SDK kurulumu
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
Tüm endpoint referansı için mail.td/api adresine bakın.