صُمّمت واجهة Mail.td REST لاختبارات end-to-end — التحقق من أن التسجيل وإعادة تعيين كلمة المرور وسير العمل المُفعَّل بالبريد تعمل بشكل صحيح. يركّز هذا الدليل على أنماط الدمج لأدوات الاختبار الشائعة.
للمرجع الخام لنقاط النهاية (أشكال الطلب/الاستجابة)، انظر صفحة API أو docs.mail.td.
Selenium / Playwright / Cypress
النمط: أنشئ صندوقاً جديداً قبل كل اختبار، سجِّل تطبيقك بهذا العنوان، ثم استطلع API لرسالة التحقق.
// شيفرة استرشادية — تتكيف مع أي إطار اختبار
async function signUpFlow(page) {
// 1. أنشئ صندوقاً مؤقتاً
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. سجِّل تطبيقك بـ mailbox.address
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// 3. استطلع لرسالة التحقق (حتى 30 ثانية)
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 (دوّره من اللوحة عند تسرّبه)
- كل وظيفة اختبار تُنشئ صندوقها الخاص — يمنع تنازع التشغيل المتوازي
- استخدم عنواناً فريداً لكل اختبار (مثل
test-${RUN_ID}-${TEST_ID}@mail.td) لتسهيل تصحيح الأخطاء - لا حاجة إلى تنظيف — تنتهي الصناديق تلقائياً، لا حاجة لسكربت تنظيف
Webhooks لخطوط أسرع (Pro)
الاستطلاع يضيف زمناً إلى كل اختبار. لمجموعات الاختبار الطويلة، سجِّل عنوان webhook يستلم POST عند وصول بريد جديد. ينتظر اختبارك تسليم webhook بدلاً من 30 استطلاعاً. يقلّص انتظار 5–15 ثانية المعتاد إلى أقل من ثانية.
Webhooks موقَّعة بـ HMAC-SHA256 — تحقق من ترويسة التوقيع قبل المعالجة.
تثبيت SDK
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
للمرجع الكامل لنقاط النهاية، انظر mail.td/api.