REST API Mail.td برای تستهای سرتاسری طراحی شده — تأیید درست بودن ثبتنام، بازنشانی رمز و گردشکارهای مبتنی بر ایمیل. این راهنما روی الگوهای ادغام برای ابزارهای تست رایج تمرکز دارد.
برای مرجع خام endpointها (شکل درخواست/پاسخ) به صفحه API یا docs.mail.td مراجعه کنید.
Selenium / Playwright / Cypress
الگو: قبل از هر تست یک صندوق تازه بسازید، اپتان را با آن آدرس ثبتنام کنید، سپس API را برای ایمیل تأیید polling کنید.
// شبهکد — با هر فریمورک تست تطبیق پیدا میکند
async function signUpFlow(page) {
// ۱. ساخت صندوق موقت
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());
// ۲. اپتان را با mailbox.address ثبتنام کنید
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// ۳. polling برای ایمیل تأیید (تا ۳۰ ثانیه)
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) {
// پاسخ لیست متن ندارد — برای دریافت 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));
}
}
خطوط CI/CD
برای GitHub Actions، GitLab CI، CircleCI یا هر خطلولهای:
- یک توکن API را بهعنوان CI secret ذخیره کنید (در صورت نشت از داشبورد بچرخانید)
- هر job تست صندوق خودش را میسازد — جلوی شرایط race بین jobهای موازی را میگیرد
- برای هر تست آدرس یکتا (مثلاً
test-${RUN_ID}-${TEST_ID}@mail.td) استفاده کنید تا اشکالزدایی شکستها ساده شود - نیازی به پاکسازی نیست — صندوقها خودکار منقضی میشوند، اسکریپت پاکسازی لازم نیست
Webhookها برای خطوط لوله سریعتر (Pro)
Polling به هر تست تأخیر میافزاید. برای مجموعههای تست بلند، یک URL webhook ثبت کنید که هنگام ورود ایمیل جدید POST دریافت کند. تست بهجای ۳۰ بار polling منتظر تحویل webhook میماند. زمان انتظار معمول ۵–۱۵ ثانیه را به کمتر از ۱ ثانیه میرساند.
webhookها با HMAC-SHA256 امضا میشوند — قبل از پردازش، هدر امضا را راستیآزمایی کنید.
نصب SDK
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
برای مرجع کامل endpointها به mail.td/api مراجعه کنید.