النطاقات المخصصة
أرسل البريد من علامتك التجارية وتتبع جاهزية الوارد منفصلة. أضف نطاقاً لإنشاء صناديق بريد بعناوين مثل agent@yourdomain.com بدلاً من @agentsend.io الافتراضي.
نظرة عامة
افتراضياً، يحصل كل صندوق بريد تنشئه على عنوان عشوائي على نطاق @agentsend.io المشترك. يصلح هذا للبدء، لكن إذا أردت أن يرسل وكلاؤك البريد من علامتك التجارية، يمكنك إضافة نطاق مخصص.
بمجرد التحقق من نطاق، يمكنك إنشاء صناديق بريد عليه وإرسال رسائل تبدو كأنها قادمة من عناوين مثل support@yourdomain.com أو assistant@yourdomain.com. يرى المستلمون نطاقك في ترويسة From. ستتبع الردود الواردة مسار MX الذي يستخدمه نطاقك، لذا وجّه MX إلى AgentSend فقط إذا أردت تسليم البريد الوارد إلى AgentSend.
تتطلب النطاقات المخصصة إضافة سجلات DNS إلى مسجِّل نطاقك (Cloudflare أو Route 53 أو Namecheap، إلخ). تتحقق عملية التحقق من انتشار هذه السجلات قبل السماح بالإرسال.
إضافة نطاق
سجّل نطاقاً في AgentSend بإرسال طلب POST إلى /domains. تتضمن الاستجابة سجلات DNS التي يلزم إضافتها.
const res = await fetch("https://api.agentsend.io/domains", { method: "POST", headers: { "x-api-key": process.env.AGENTSEND_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ domain: "yourdomain.com", }), }); const domain = await res.json(); console.log(domain.id); // "dom_..." console.log(domain.sendingStatus); // "pending" console.log(domain.receivingStatus); // "pending" console.log(domain.dnsRecords); // combined DNS records to add
مثال على الاستجابة
{
"id": "dom_01hx4r2kt9fzv8s3n",
"domain": "yourdomain.com",
"sendingStatus": "pending",
"receivingStatus": "pending",
"verificationStatus": "pending",
"createdAt": "2025-04-16T10:00:00.000Z",
"dnsRecords": [
{
"type": "TXT",
"host": "_amazonses.yourdomain.com",
"value": "verification-token"
},
{
"type": "CNAME",
"host": "dkim-a._domainkey.yourdomain.com",
"value": "dkim-a.dkim.amazonses.com"
},
{
"type": "MX",
"host": "yourdomain.com",
"value": "mx.agentsend.io",
"priority": 10
}
]
}إعداد DNS
بعد إضافة النطاق، انتقل إلى مزوّد DNS وأضف السجلات المُرجَعة في dnsRecords. تتحقق سجلات TXT وCNAME من هوية المرسل وتوقيع DKIM. سجل MX مطلوب فقط إذا أردت أيضاً أن يستقبل AgentSend البريد الوارد للنطاق.
| النوع | المضيف | القيمة | الغرض |
|---|---|---|---|
MX |
yourdomain.com |
mx.agentsend.io (priority 10) |
يوجّه البريد الوارد لنطاقك إلى خوادم بريد AgentSend، بحيث تصل الردود إلى صندوق وكيلك. |
TXT (verification) |
_amazonses.yourdomain.com |
SES verification token | يؤكد أنك تتحكم في نطاق الإرسال في Amazon SES. |
CNAME (DKIM) |
<token>._domainkey.yourdomain.com |
<token>.dkim.amazonses.com |
يوقّع الرسائل الصادرة تشفيرياً ليتمكن المستلمون من التحقق من أن AgentSend أرسلها بإذن من نطاقك. |
تنتشر تغييرات DNS عادة خلال بضع دقائق، وقد تستغرق حتى 48 ساعة في حالات نادرة. يمكنك تنفيذ dig TXT agentsend._domainkey.yourdomain.com من الطرفية للتحقق من أن سجل DKIM نشط.
إذا كان لنطاقك سجل MX مسبقاً، فإن إضافة سجل MX الخاص بـ AgentSend سيوجّه كل البريد الوارد لذلك النطاق إلى AgentSend. استخدم نطاقاً فرعياً (مثل mail.yourdomain.com) إذا احتجت للحفاظ على توجيه البريد القائم.
التحقق
بمجرد إضافة سجلات DNS، ابدأ التحقق باستدعاء POST /domains/{id}/verify. يحدّث AgentSend التحقق من المرسل ويفحص بشكل منفصل ما إذا كان MX يشير إلى AgentSend للبريد الوارد.
const res = await fetch( `https://api.agentsend.io/domains/${domain.id}/verify`, { method: "POST", headers: { "x-api-key": process.env.AGENTSEND_API_KEY }, } ); const result = await res.json(); console.log(result.sendingStatus); // "verified" | "pending_dkim" | "failed" console.log(result.receivingStatus); // "verified" | "pending" | "failed"
تدفق الحالة
يُتتبّع sendingStatus وreceivingStatus بشكل منفصل. يبقى verificationStatus اسماً مستعاراً متوافقاً مع النسخ السابقة لـsendingStatus.
| الحالة | المعنى |
|---|---|
pending |
تم تسجيل النطاق لكن لم تُجرَ محاولة تحقق بعد. لم تُفحَص أي سجلات DNS. |
pending_dkim |
تم التحقق من ملكية النطاق، لكن سجلات DKIM لم تظهر بعد. انتظر بضع دقائق وأعد المحاولة. |
verified |
تم تأكيد جميع سجلات DNS المطلوبة. النطاق جاهز لاستخدامه في إرسال البريد. لا يزال الاستقبال يعتمد على ما تشير إليه سجلات MX للنطاق. |
failed |
فشل التحقق. تعذّر العثور على واحد أو أكثر من السجلات المطلوبة. تحقق من صحة إدخال السجلات لدى مزوّد DNS وأعد المحاولة. |
يمكنك استدعاء /domains/{id}/verify أي عدد من المرات. الاستعلام الدوري آمن — مثلاً، استدعِه كل 30 ثانية حتى تصبح الحالة verified.
خصائص النطاق
يحتوي كائن النطاق على الحقول التالية:
| الخاصية | Type | Description |
|---|---|---|
id |
string | المعرّف الفريد للنطاق، مع بادئة dom_. |
domain |
string | اسم النطاق كما قُدّم عند إنشائه، مثل yourdomain.com. |
sendingStatus |
string | حالة التحقق من المرسل الحالية: pending أو pending_dkim أو verified أو failed. |
receivingStatus |
string | حالة توجيه الوارد الحالية استناداً إلى MX: pending أو verified أو failed. |
verificationStatus |
string | اسم مستعار متوافق مع النسخ السابقة لـsendingStatus. |
dnsRecords |
array | مصفوفة كائنات سجلات DNS يجب إضافتها إلى مزوّد DNS. لكل سجل type وhost وvalue وقد يحتوي priority. |
createdAt |
string (ISO 8601) | طابع زمني لوقت تسجيل النطاق في AgentSend. |
إنشاء صناديق بريد على نطاقات مخصصة
بمجرد أن يصبح النطاق verified، مرّر id الخاص به كـdomainId عند إنشاء صندوق. سيستخدم عنوان الصندوق نطاقك بدلاً من @agentsend.io.
const res = await fetch("https://api.agentsend.io/inboxes", { method: "POST", headers: { "x-api-key": process.env.AGENTSEND_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ displayName: "Support Agent", username: "support", // becomes support@yourdomain.com domainId: "dom_01hx4r2kt9fzv8s3n", }), }); const inbox = await res.json(); console.log(inbox.address); // "support@yourdomain.com"
يحدد حقل username الجزء المحلي من عنوان البريد. إذا تركته، ينشئ AgentSend واحداً عشوائياً. يمكنك إنشاء أي عدد من الصناديق على نفس النطاق الذي تم التحقق منه.
حذف نطاق
أزل نطاقاً بطلب DELETE إلى /domains/{id}.
await fetch(`https://api.agentsend.io/domains/${domain.id}`, { method: "DELETE", headers: { "x-api-key": process.env.AGENTSEND_API_KEY }, });
حذف النطاق نهائي. ستفقد جميع الصناديق المرتبطة بالنطاق عناوينها ولن تتمكن من إرسال أو استقبال البريد. تُحفَظ الرسائل القائمة في تلك الصناديق، لكن لا يمكن تسليم بريد جديد. لا يمكن التراجع عن هذا الإجراء.