MailLandDocs
البريد الوارد

مسارات البريد الوارد

إعداد قواعد التوجيه لتوجيه رسائل البريد الوارد إلى التخزين أو ويب هوك أو إجراءات أخرى

تحدد المسارات كيفية تعامل MailLand مع رسائل البريد الوارد لنطاق معيّن. يطابق كل مسار الجزء المحلي من عنوان المستلم (الجزء الذي يسبق @) وينفذ إجراءً واحدًا أو أكثر: التخزين، أو التسليم إلى ويب هوك، أو إعادة التوجيه، أو الرفض على مستوى SMTP، أو الإسقاط. تُقيَّم المسارات بترتيب الأولوية (الرقم الأصغر أولاً)، ويفوز أول مسار مطابق.

تطابق المسارات الجزء المحلي من عنوان المستلم فقط. لا توجد مطابقة حسب المرسل أو الموضوع أو أي رأسية أخرى: لا يمكن لمسار أن يُصفّي حسب from أو subject.

أنواع المطابقة

نوع المطابقةالوصف
exactيطابق الجزء المحلي النمط تمامًا
prefixيبدأ الجزء المحلي بالنمط
suffixينتهي الجزء المحلي بالنمط
containsيحتوي الجزء المحلي على النمط
plusaddressingالجزء المحلي هو النمط متبوعًا بـ +أي شيء (يطابق support مع support+ticket123)
catchallيطابق كل مستلم؛ لا حاجة لنمط
regexيطابق الجزء المحلي النمط كتعبير نمطي (بحد أقصى 200 حرف، ومهلة ثانية واحدة)

المطابقة غير حساسة لحالة الأحرف وتُجرى دائمًا على الجزء المحلي: يطابق كل من [email protected] و[email protected] مسارًا بنمط support مقيدًا بنفس النطاق.

يتطلب نوع المطابقة regex خطة تدعم توجيه البريد الوارد بالتعبيرات النمطية (Pro وMax حاليًا، وليس Free). إنشاء مسار بـ matchType: "regex"، أو تحديث مسار قائم بحيث يصبح نوع مطابقته regex، على خطة لا تدعم ذلك يُعيد 400 PLAN_LIMIT_REACHED. المسار الذي يستخدم regex بالفعل يستمر في المطابقة حتى لو خُفّضت خطة مساحة العمل لاحقًا، وتحريره دون تغيير نوع مطابقته لا يتأثر.

إجراءات المسار

حقل actions في المسار هو قائمة تحتوي على واحدة أو أكثر من القيم النصية التالية:

الإجراءالوصف
storeتخزين البريد المُحلَّل لاسترجاعه عبر واجهة البرمجة ولوحة التحكم
webhookتسليم البريد المُحلَّل إلى ويب هوك (يتطلب webhookId)
forwardإرسال نسخة من البريد إلى forwardToEmail عبر مسار الإرسال العادي
rejectرفض الرسالة على مستوى SMTP باستخدام rejectStatus/rejectMessage
dropقبول الرسالة عبر SMTP ثم إسقاطها بصمت، بدون تخزين وبدون ويب هوك
unsubscribeمعاملة العنوان كصندوق بريد لـ List-Unsubscribe؛ إجراء نهائي، انظر أدناه

يمكن دمج store وwebhook مع بعضهما البعض ومع forward. أما reject وdrop وunsubscribe فهي نهائية: يجب أن يكون كل منها الإجراء الوحيد في المسار؛ وترفض واجهة البرمجة أي طلب يجمع بين أحدها وأي إجراء آخر.

النسخة المُعاد توجيهها لا تُرسل عبر تتابع SMTP خام، بل تمر عبر نفس مسار الإرسال الذي تمر به أي رسالة تراسلية أخرى، ولهذا السبب تحتاج إلى موافقة الوجهة (أدناه)، وتُحتسب ضمن حصة الإرسال لديك، وتظهر في سجل الرسائل الخاص بك مثل أي عملية إرسال أخرى.

وجهات إعادة التوجيه

قبل إعادة توجيه أي بريد إلى عنوان ما، يجب أن يوافق مالك ذلك العنوان: إلا إذا كان العنوان على أحد نطاقاتك الخاصة الموثّقة بالكامل للإرسال. بالنسبة لعنوان خارجي، لا توجد طريقة لتجاوز ذلك: فهذا يحمي مالك الوجهة من تلقّي بريد لم يوافق عليه أبدًا، ويحمي سمعة إرسالك من عنوان يرتد أو يُبلَّغ عنه كشكوى.

عند إنشاء أو تحديث مسار يحتوي على forward ضمن actions، يقوم MailLand تلقائيًا بما يلي:

  1. إنشاء سجل وجهة إعادة توجيه لـ forwardToEmail (أو إعادة استخدام سجل موجود)، ضمن نطاق مستأجرك: يُتذكَّر العنوان نفسه عبر كل مسار يعيد التوجيه إليه.
  2. إذا كان العنوان بحاجة إلى تأكيد ولم يُطلب منه ذلك من قبل، يرسل بريدًا إلكترونيًا للتأكيد يحتوي على رابط.

حفظ المسار نفسه ينجح دائمًا؛ فشل بريد التأكيد لا يُفشل حفظ المسار: تبقى الوجهة ببساطة pending (لا يُعاد توجيه أي شيء إليها) إلى أن تعيد إرسال التأكيد.

رابط التأكيد

الرابط الموجود في بريد التأكيد صالح لمدة 7 أيام وهو للاستخدام مرة واحدة: بمجرد أن يؤكد المستلم أو يرفض، فإن زيارة الرابط مرة أخرى تعرض القرار نفسه فقط، ولا يمكن التراجع عنه بزيارته مجددًا. الرابط المنتهي الصلاحية الذي لم يُبتّ فيه يُعيد 410 Gone عند فتحه مرة أخرى.

  • التأكيد: سيُرسَل الآن البريد المُعاد توجيهه من هذا المستأجر إلى العنوان.
  • الرفض: نهائي. لن يُعاد توجيه أي شيء إلى العنوان من هذا المستأجر مرة أخرى أبدًا، ولا يمكن للمستأجر طلب التأكيد مجددًا له.

جلب وجهة إعادة توجيه

GET https://api.mail.land/v1/transactional/inbound/forward-destinations/{destinationId}
استجابة وجهة إعادة التوجيه
{
  "id": "f2k9m3q7p4w8x1",
  "email": "[email protected]",
  "status": "pending",
  "confirmedVia": null,
  "lastSentAt": "2026-09-26T10:00:00Z",
  "confirmedAt": null,
  "declinedAt": null
}

القيمة status هي إحدى pending أو confirmed أو declined. القيمة confirmedVia تكون link عندما يؤكد المالك عبر البريد الإلكتروني، أو verified_domain عندما يكون العنوان على أحد نطاقاتك الخاصة الموثّقة للإرسال ولم يحتج إلى تأكيد، أو null في الحالات الأخرى. تحمل استجابة المسار أيضًا نفس هذا الكائن ضمن forwardDestination (انظر استجابة المسار أدناه).

إعادة إرسال التأكيد

POST https://api.mail.land/v1/transactional/inbound/forward-destinations/{destinationId}/resend

فقط لوجهة لا تزال pending وتحتاج فعليًا إلى رابط (عنوان على أحد نطاقات الإرسال الموثّقة الخاصة بك يُعيد 409 FORWARD_DESTINATION_NO_CONFIRMATION_NEEDED، لأنه لا يوجد ما يُعاد إرساله). محدود المعدل: بحد أقصى مرة كل 5 دقائق و5 مرات يوميًا لكل وجهة، و50 مرة يوميًا عبر المستأجر بأكمله. تجاوز أي من الحدّين يُعيد 429 FORWARD_CONFIRMATION_RATE_LIMITED.

لا توجد طريقة للتراجع عن رفض وجهة عبر واجهة البرمجة بمجرد أن ترفض: يبقى العنوان المرفوض مرفوضًا بشكل دائم لذلك المستأجر.

إنشاء مسار

تنتمي المسارات إلى نطاق وتُنشأ ضمن ذلك النطاق.

POST https://api.mail.land/v1/transactional/inbound/domains/{domainId}/routes
Create route request
{
  "name": "Support Inbox",
  "matchType": "exact",
  "matchPattern": "support",
  "actions": ["store", "webhook"],
  "webhookId": "w4k8m2q7p9x3z1",
  "priority": 10
}
الحقلالنوعمطلوبالوصف
namestringنعماسم المسار
matchTypestringنعمأحد أنواع المطابقة أعلاه
matchPatternstringنعمالنمط لمطابقته مع الجزء المحلي (يُتجاهل مع catchall، بحد أقصى 64 حرفًا، و200 مع regex)
actionsstring[]نعمواحد أو أكثر من store، webhook، forward، reject، drop، unsubscribe
webhookIdstringمشروطالمعرّف العام لويب هوك موجود مسبقًا؛ مطلوب عندما تتضمن actions قيمة webhook. لا تُنشئ المسارات ويب هوك مضمّنًا أبدًا، أنشئه أولاً من صفحة Webhooks
forwardToEmailstringمشروطالوجهة لإجراء forward؛ مطلوب عندما تتضمن actions قيمة forward. يجب أن يكون عنوانًا مجردًا (بدون اسم عرض وبدون أقواس زاويّة). يجب أن يكون نطاق المسار نفسه موثّقًا بالكامل للإرسال، إذ تُرسَل النسخة المُعاد توجيهها منه، وإلا رُفض الطلب بالخطأ 400 FORWARD_DOMAIN_NOT_VERIFIED. يجب على الوجهة نفسها أن تؤكد بشكل منفصل، ما لم تكن على أحد نطاقاتك الخاصة الموثّقة للإرسال (انظر وجهات إعادة التوجيه)
rejectStatusstringلاحالة SMTP لإجراء reject، مثل 550 أو 550 5.1.1 (الافتراضي 550 5.1.1)
rejectMessagestringلانص الرفض عبر SMTP لإجراء reject
priorityintلارقم أصغر = يُقيَّم أولاً. الافتراضي هو رقم أعلى بواحد من أعلى أولوية حالية في النطاق. يجب أن يكون فريدًا لكل نطاق
Create an inbound route
curl -X POST https://api.mail.land/v1/transactional/inbound/domains/k3v9x2m8q1w7z4/routes \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Support Inbox",
    "matchType": "exact",
    "matchPattern": "support",
    "actions": ["store", "webhook"],
    "webhookId": "w4k8m2q7p9x3z1",
    "priority": 10
  }'

الاستجابة

Route response
{
  "id": "r7k3m9q2p4w8x1",
  "name": "Support Inbox",
  "domainId": "k3v9x2m8q1w7z4",
  "domainName": "yourdomain.com",
  "priority": 10,
  "isEnabled": true,
  "matchType": "Exact",
  "matchPattern": "support",
  "actions": ["store", "webhook"],
  "webhookId": "w4k8m2q7p9x3z1",
  "webhookName": "Support Webhook",
  "webhookUrl": "https://yourapp.com/webhooks/support",
  "forwardToEmail": null,
  "forwardDestination": null,
  "rejectStatus": null,
  "rejectMessage": null,
  "createdAt": "2026-02-17T12:00:00Z",
  "updatedAt": "2026-02-17T12:00:00Z"
}

تقبل الطلبات matchType بأي حالة أحرف؛ أما الاستجابات فتُعيد دائمًا اسم التعداد بحرف كبير في البداية: Exact، Prefix، Suffix، Contains، PlusAddressing، CatchAll، Regex. لا تقارن قيمة matchType في الاستجابة بسلسلة أحرف صغيرة.

لا يُملأ forwardDestination إلا عندما تتضمن actions قيمة forward؛ ويحمل نفس الكائن الموصوف في جلب وجهة إعادة توجيه:

استجابة مسار مع إعادة توجيه معلّقة
{
  "...": "...",
  "actions": ["store", "forward"],
  "forwardToEmail": "[email protected]",
  "forwardDestination": {
    "id": "f2k9m3q7p4w8x1",
    "email": "[email protected]",
    "status": "pending",
    "confirmedVia": null,
    "lastSentAt": "2026-09-26T10:00:00Z",
    "confirmedAt": null,
    "declinedAt": null
  }
}

إدراج مسارات نطاق

GET https://api.mail.land/v1/transactional/inbound/domains/{domainId}/routes

يُرجع جميع مسارات النطاق، مرتبة حسب الأولوية (الأدنى أولاً).

List routes for a domain
curl https://api.mail.land/v1/transactional/inbound/domains/k3v9x2m8q1w7z4/routes \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Route list response
{
  "items": [
    { "id": "r7k3m9q2p4w8x1", "name": "Support Inbox", "priority": 10, "isEnabled": true, "..." : "..." }
  ],
  "totalCount": 1
}

إدراج جميع المسارات

لإدراج المسارات عبر جميع نطاقات المستأجر، استخدم بدلاً من ذلك نقطة النهاية المُرقّمة بالمؤشر:

GET https://api.mail.land/v1/transactional/inbound/routes
المعاملالنوعالافتراضيالوصف
cursorstring-مؤشر معتم من nextCursor الخاص بالصفحة السابقة. يُحذف في الصفحة الأولى
limitint50عدد العناصر في الصفحة

الحصول على تفاصيل مسار

GET https://api.mail.land/v1/transactional/inbound/routes/{routeId}
Get route details
curl https://api.mail.land/v1/transactional/inbound/routes/r7k3m9q2p4w8x1 \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

تحديث مسار

PUT https://api.mail.land/v1/transactional/inbound/routes/{routeId}

يطابق نص الطلب طلب الإنشاء، لكن كل حقل اختياري، تُحدَّث فقط الحقول التي ترسلها.

Update an inbound route
curl -X PUT https://api.mail.land/v1/transactional/inbound/routes/r7k3m9q2p4w8x1 \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{
    "matchPattern": "help",
    "priority": 5
  }'

تبديل حالة مسار

يعكس قيمة isEnabled دون التأثير على أي حقل آخر. لا يوجد نص طلب.

POST https://api.mail.land/v1/transactional/inbound/routes/{routeId}/toggle
Toggle a route
curl -X POST https://api.mail.land/v1/transactional/inbound/routes/r7k3m9q2p4w8x1/toggle \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

إعادة ترتيب المسارات

حدِّث أولوية جميع مسارات نطاق دفعة واحدة، بتمرير معرّفات المسارات بالترتيب المطلوب: يصبح المعرّف الأول ذا أولوية 1، والثاني أولوية 2، وهكذا.

POST https://api.mail.land/v1/transactional/inbound/domains/{domainId}/routes/reorder
Reorder routes request
{
  "routeIds": ["r7k3m9q2p4w8x1", "m2p8w4x1k7q3z9", "x4k1p7m3q9w2z8"]
}
Reorder routes
curl -X POST https://api.mail.land/v1/transactional/inbound/domains/k3v9x2m8q1w7z4/routes/reorder \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{
    "routeIds": ["r7k3m9q2p4w8x1", "m2p8w4x1k7q3z9", "x4k1p7m3q9w2z8"]
  }'

اختبار مسار

تحقّق من المسار الذي سيطابق عنوان مستلم معيّن دون معالجة بريد فعلي.

POST https://api.mail.land/v1/transactional/inbound/domains/{domainId}/routes/test
Test route request
{
  "emailAddress": "[email protected]"
}
Test a route
curl -X POST https://api.mail.land/v1/transactional/inbound/domains/k3v9x2m8q1w7z4/routes/test \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{
    "emailAddress": "[email protected]"
  }'
Test route response: match found
{
  "matched": true,
  "matchedRouteId": "r7k3m9q2p4w8x1",
  "matchedRouteName": "Support Inbox",
  "actions": ["store", "webhook"]
}

إذا لم يطابق أي مسار، تكون الاستجابة 200 مع matched: false، وتكون matchedRouteId/matchedRouteName/actions جميعها null. أما 404 فيعني أن النطاق غير موجود، أو أن العنوان المُختبَر غير صالح (بلا @).

حذف مسار

DELETE https://api.mail.land/v1/transactional/inbound/routes/{routeId}
Delete a route
curl -X DELETE https://api.mail.land/v1/transactional/inbound/routes/r7k3m9q2p4w8x1 \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

أمثلة مسارات

مسار شامل (catch-all): تخزين كل مستلم غير مطابق:

Catch-all route
{
  "name": "Catch All",
  "matchType": "catchall",
  "matchPattern": "*",
  "actions": ["store"],
  "priority": 999
}

العنونة بالإضافة (plus-addressing): توجيه كل صيغ support+*@yourdomain.com إلى ويب هوك واحد:

Plus-addressing route
{
  "name": "Support Tickets",
  "matchType": "plusaddressing",
  "matchPattern": "support",
  "actions": ["store", "webhook"],
  "webhookId": "w4k8m2q7p9x3z1",
  "priority": 5
}

الرفض عبر SMTP: رفض البريد الموجه إلى صندوق متوقف قبل قبوله:

Reject route
{
  "name": "Retired Mailbox",
  "matchType": "exact",
  "matchPattern": "old-team",
  "actions": ["reject"],
  "rejectStatus": "550 5.1.1",
  "rejectMessage": "Mailbox does not exist",
  "priority": 1
}

تُقيَّم المسارات بترتيب الأولوية (الرقم الأصغر أولاً). ضع المسارات المحددة عند أرقام أولوية أقل، والمسارات الشاملة عند أعلى رقم لتُنفَّذ أخيرًا.

شكل النسخة المُعاد توجيهها

النسخة المُعاد توجيهها هي رسالة تراسلية جديدة وعادية، وليست ترحيلًا خامًا للبايتات الأصلية، تُرسَل من نطاقك الموثّق حتى تتمكن من اجتياز DKIM وDMARC لدى مزوّد صندوق بريد الوجهة:

  • From: بالصيغة "<اسم المُرسِل الأصلي> via <العنوان المطابق>@<نطاقك>"، مثل "Jane Doe via [email protected]". أي اسم عرض يشبه عنوانًا (يحتوي على @ أو < أو >) يُستبدل بالعنوان الأصلي المجرد، حتى لا تتمكن أي نسخة أبدًا من انتحال علامة تجارية تحت DKIM الخاص بك.
  • Reply-To: حقل Reply-To في الرسالة الأصلية إن وُجد، وإلا عنوان المُرسِل الأصلي، حتى تصل الردود إلى الكاتب الحقيقي وليس إليك.
  • بدون تتبّع: يكون تتبّع الفتح والنقر مُعطّلاً دائمًا في النسخة المُعاد توجيهها، بغض النظر عن إعدادات التتبّع في مساحة عملك.
  • بدون تذييل علامة تجارية: لا يُضاف أبدًا التذييل الذي قد تحمله عمليات الإرسال الأخرى في خطة Free.
  • المرفقات: تُصفَّى وفق نفس قواعد الإرسال الصادر عبر واجهة البرمجة (النوع، العدد، الحجم الإجمالي). ما يُستبعد يُذكر في ملاحظة أعلى النسخة: "Forwarded without N attachment(s) that exceed the outbound attachment limits: ..."، تصل النسخة مع ذلك، لكن بدون تلك الأجزاء.
  • الوسم: تحمل كل نسخة مُعاد توجيهها الوسم inbound-forward، حتى تتمكن من العثور عليها في سجل رسائلك المعتاد؛ حالة تسليمها (queued، sent، delivered، bounced، إلخ) هي نفس الحالة التي تحصل عليها أي رسالة تراسلية أخرى، لأنها تمر عبر نفس خط التسليم.
  • الاستخدام: تُحتسب كل نسخة مُعاد توجيهها كعملية إرسال واحدة ضمن حصة خطتك وفوترتها، وتظهر كسطر "Inbound forward" منفصل في الاستخدام، منفصلًا عن عمليات الإرسال عبر واجهة البرمجة وSMTP والحملات والأتمتة.

ما لا يُعاد توجيهه أبدًا

الرسالة التي تطابق مسار forward لا تُعاد توجيهها، ولا تُفوتَر أبدًا، عندما:

  • تُصنَّف كبريد مزعج، أو يكون المُرسِل محظورًا كمصدر بريد مزعج.
  • تفشل في اجتياز DMARC بموجب السياسة الفعلية لنطاق المُرسِل، وتكون quarantine أو reject، تُحدَّد هذه السياسة بالصعود من نطاق المُرسِل بحثًا عن أقرب سجل منطبق، بحيث تكون قيمة sp= الخاصة بالنطاق الفرعي أَولى من p= الخاصة بنطاقه التنظيمي، وتُعامَل سجلات t=y (تجريبية) أو pct=0 على أنها بمستوى سياسة أدنى، إذ ستؤدي إعادة توجيهها إلى إعادة توقيع رسالة طلب مُرسِلها صراحةً من المستلمين رفضها.
  • تتجاوز هي أو نص HTML/النص العادي فيها حدود الحجم الصادر للمنصة.
  • ستؤدي إعادة توجيهها إلى حلقة: تكون الوجهة أحد مستلمي الرسالة نفسها، أو تحمل بالفعل عددًا كبيرًا جدًا من القفزات أو ترويسات Received.

النسخة المؤهلة التي يتعذّر إرسالها مؤقتًا (تأخير سياسة، نافذة حصة، انقطاع) تُعاد المحاولة مع تراجع تدريجي لمدة تصل إلى 24 ساعة، ثم تنتهي صلاحيتها دون إرسال. المسار الذي يُعطَّل أو يُحذف أو تتغيّر وجهته بعد استلام رسالة يوقف أيضًا أي نسخة لا تزال بانتظاره: تظل تهيئة المسار الحالية هي المرجع دائمًا.

التحقق من نتيجة إعادة التوجيه

كل رسالة واردة طابقت مسار forward تحمل مصفوفة forwards في استجابة تفاصيلها (GET /v1/transactional/inbound/emails/{id}): عنصر واحد لكل وجهة كانت الرسالة في طابور إعادة التوجيه إليها، لترى ما حدث فعليًا لا مجرد الوجهة التي تم ضبطها.

forwards في بريد وارد
"forwards": [
  {
    "destination": "[email protected]",
    "status": "Admitted",
    "reason": null,
    "omittedAttachmentCount": 0,
    "messageId": "m_01hz3k...",
    "createdAt": "2026-09-26T10:00:00Z",
    "updatedAt": "2026-09-26T10:00:02Z"
  }
]
الحقلالنوعالوصف
destinationنصعنوان وجهة إعادة التوجيه
statusنصإحدى الحالات أدناه
reasonنص | nullرمز تفصيل قابل للقراءة آليًا (مثل hop_limit)، أو null
omittedAttachmentCountرقمالمرفقات التي حُذفت من النسخة لتجاوزها حدود المرفقات الصادرة
messageIdنص | nullمعرّف رسالة النسخة المُعاد توجيهها بعد قبولها، وإلا null
createdAt / updatedAtنصطوابع زمنية ISO-8601 لسجل إعادة التوجيه

status تكون إحدى القيم التالية:

الحالةالمعنى
Pendingكُتبت مع الرسالة الواردة؛ لم يستلمها عامل إعادة التوجيه بعد
Processingاستلمها عامل إعادة التوجيه؛ قيد التنفيذ
Deferredرفض مؤقت (تأخير سياسة، معدل، نافذة حصة، عطل)؛ تُعاد المحاولة بتراجع تدريجي حتى 24 ساعة
Admittedأُرسلت عبر خط الإرسال العادي: messageId يسمّي النسخة، وحالة تسليمها الخاصة (في الانتظار/أُرسلت/تم التسليم/ارتدت) هي المرجع
SkippedLoopحماية من الحلقات: حد القفزات، عدد كبير جدًا من رؤوس Received، أو أن الوجهة أحد مستلمي الرسالة نفسها
SkippedSpamصُنّفت الرسالة كبريد مزعج، أو المرسل مدرج في قائمة الحظر كبريد مزعج
SkippedAuthFailفشل DMARC بموجب السياسة الفعلية لنطاق المرسل (quarantine أو reject)، مع مراعاة sp= الخاصة بالنطاق الفرعي
SkippedTooLargeتتجاوز الرسالة حد حجم إعادة التوجيه الصادر
RefusedSuppressedالوجهة موقوفة، أو مرفوضة بواسطة حماية المستلم
RefusedDomainNotVerifiedنطاق المسار غير موثّق (أو لم يعد موثّقًا) للإرسال
RefusedPolicyرفض نهائي بسبب سياسة أو حساب
RefusedRouteInactiveتم تعطيل المسار أو حذفه أو فقد إجراء forward أو تغيّرت وجهته بعد استلام الرسالة
RefusedInvalidتعذّر تحويل الرسالة المخزّنة إلى نسخة قابلة للإرسال
Expiredظلت Deferred عند إغلاق نافذة إعادة المحاولة البالغة 24 ساعة
RefusedDestinationUnconfirmedالوجهة لم تؤكد بعد (راجع وجهات إعادة التوجيه)
RefusedDestinationDeclinedرفض مالك الوجهة؛ لن يُعاد توجيه أي شيء إليها أبدًا

Pending وProcessing وDeferred هي الحالات غير النهائية الوحيدة، أي قيمة أخرى نهائية.

استجابات خطأ إعادة التوجيه

الحالةالرمزالوصف
400VALIDATION_FAILED (الحقل forwardToEmail)عند الإنشاء: تتضمن actions قيمة forward لكن forwardToEmail فارغ
400FORWARD_DESTINATION_REQUIREDعند التحديث (PUT): المسار الفعّال الناتج يُعيد التوجيه لكن بلا forwardToEmail
400FORWARD_DOMAIN_NOT_VERIFIEDنطاق المسار غير موثّق بالكامل للإرسال، لذا لا يمكن أبدًا إرسال نسخة مُعاد توجيهها منه
404RESOURCE_NOT_FOUNDوجهة إعادة التوجيه غير موجودة
409FORWARD_DESTINATION_NOT_PENDINGطُلبت إعادة الإرسال لوجهة سبق أن أكدت أو رفضت
409FORWARD_DESTINATION_NO_CONFIRMATION_NEEDEDطُلبت إعادة الإرسال لوجهة على أحد نطاقات الإرسال الموثّقة الخاصة بك
410FORWARD_CONFIRMATION_EXPIREDانتهت صلاحية رابط التأكيد (7 أيام) دون البتّ فيه
409FORWARD_CONFIRMATION_ALREADY_DECIDEDاستُخدم الرابط للقرار الآخر
429FORWARD_CONFIRMATION_RATE_LIMITEDطُلبت إعادة الإرسال مبكرًا جدًا، أو تم بلوغ الحد اليومي لإعادة الإرسال

استجابات الخطأ

الحالةالرمزالوصف
400VALIDATION_FAILEDحقول مطلوبة مفقودة، أو matchType/actions غير صالحة، أو إجراء نهائي مدموج مع إجراء آخر
400INVALID_REQUESTيوجد بالفعل مسار بنفس priority لهذا النطاق، أو لم يُعثر على webhookId المُشار إليه
400PLAN_LIMIT_REACHEDإنشاء مسار بـ matchType: "regex"، أو تحديث مسار بحيث يصبح نوع مطابقته regex، على خطة لا تدعم مسارات regex (Free حاليًا)
403FORBIDDENصلاحيات غير كافية
404RESOURCE_NOT_FOUNDالنطاق أو المسار غير موجود (نقطة نهاية الاختبار: أيضًا عنوان غير صالح بلا @؛ عدم التطابق يُرجع 200 مع matched: false، وليس 404)

الخطوات التالية

  • Inbound Overview: كيفية عمل معالجة البريد الوارد
  • Inbound Webhooks: تنسيق حمولة ويب هوك وتسليمها
  • Domains: إعداد سجلات MX للبريد الوارد

في هذه الصفحة