تخطَّ إلى المستندات
API

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

إلى أين يذهب بريد عنوان إلى جانب صندوق بريده. وكل وجهة تؤكد بالبريد قبل أن تستقبل أي شيء.

GET/domains/{id}/addresses/{addressId}/forwards

ينفّذ أيًّا من الاستدعاءات الـ5 على مساحة عملك.

GET /domains/{id}/addresses/{addressId}/forwards

إلى أين يذهب بريد عنوان إلى جانب صندوق بريده. وكل وجهة تؤكد بالبريد قبل أن تستقبل أي شيء.

سرد الوجهات

يتطلب domains:read. كل وجهات العنوان، الأقدم أولًا. ويبيّن destination ما إذا كان العنوان يحتفظ أيضًا بنسخة هنا (mailbox) أو يكتفي بإعادة التوجيه (forward)، وmax هو عدد الوجهات المسموح به لعنوان واحد.

curl
curl "$OE/domains/b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f/addresses/5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18/forwards" -H "$AUTH"
الاستجابة
{  "object": "list",  "address": "[email protected]",  "destination": "mailbox",  "max": 10,  "data": [    {      "object": "address_forward",      "id": "9a4c1e7b-2d3f-4b5a-8c6d-0e1f2a3b4c5d",      "addressId": "5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18",      "email": "[email protected]",      "enabled": true,      "status": "live",      "confirmedAt": "2026-09-26T08:12:40.000Z",      "askedAt": "2026-09-26T08:02:11.000Z",      "lastRelayAt": "2026-09-30T16:45:03.000Z",      "lastError": null,      "failures": 0,      "createdAt": "2026-09-26T08:02:11.000Z"    }  ]}

status هو live بعد أن تؤكد الوجهة أنها تريد البريد، وpending ما دامت لم تُجب، وrefused حين ترفض، وpaused ما دامت موقوفة. ولا تستقبل شيئًا إلا الوجهة التي حالتها live.

إضافة وجهات

يتطلب domains:write. استخدم POST /domains/{id}/addresses/{addressId}/forwards مع { emails }، من 1 إلى 10 عناوين. وتُرسل إلى كل وجهة جديدة رسالة تطلب منها التأكيد، فتبدأ بالحالة pending.

curl
curl -X POST "$OE/domains/b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f/addresses/5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18/forwards" -H "$AUTH" \  -H "Content-Type: application/json" \  -d '{ "emails": ["[email protected]", "[email protected]"] }'
الاستجابة
{  "object": "address_forwards",  "added": [    {      "object": "address_forward",      "id": "9a4c1e7b-2d3f-4b5a-8c6d-0e1f2a3b4c5d",      "addressId": "5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18",      "email": "[email protected]",      "enabled": true,      "status": "pending",      "confirmedAt": null,      "askedAt": "2026-09-26T08:02:11.000Z",      "lastRelayAt": null,      "lastError": null,      "failures": 0,      "createdAt": "2026-09-26T08:02:11.000Z"    }  ],  "skipped": [    {      "email": "[email protected]",      "reason": "[email protected] is hosted here, so it cannot be a forwarding destination. Share the address with that person instead."    }  ]}

العنوان المستضاف هنا، والعنوان الموجود في القائمة بالفعل، والعنوان الذي سيُحدث حلقة، والعنوان الذي يتجاوز الحد البالغ 10، والعنوان الذي رفض البريد من مساحة العمل هذه، تُذكر كلها في skipped مع السبب، ويُضاف الباقي مع ذلك.

العنوان المعطَّل يُرفَض بـ 409 address_disabled.

المفتاح المحصور بعناوين أو نطاقات معيّنة يجب أن يملك النطاق كاملًا، والتطبيق الذي يعمل نيابةً عن عضو لا يستطيع أن يعيد توجيه إلا عنوانًا يصل إليه ذلك العضو.

يحتاج رمز وصول OAuth إلى رمز تحقق لهذا الاستدعاء. وإلى أن يتحقق التطبيق من رمز خلال آخر 60 دقيقة، يردّ الاستدعاء بـ 403 step_up_required ولا يغيّر شيئًا. ولا يُطلب ذلك من مفتاح API أبدًا. وتبيّن صفحة المصادقة كيف تطلب رمزًا وتتحقق منه.

إيقاف وجهة مؤقتًا أو تشغيلها

يتطلب domains:write. استخدم PATCH /domains/{id}/addresses/{addressId}/forwards/{forwardId} مع { enabled }. والوجهة الموقوفة مؤقتًا تحتفظ بتأكيدها، فلا تحتاج إعادة تشغيلها إلى أي تأكيد.

curl
curl -X PATCH "$OE/domains/b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f/addresses/5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18/forwards/9a4c1e7b-2d3f-4b5a-8c6d-0e1f2a3b4c5d" -H "$AUTH" \  -H "Content-Type: application/json" \  -d '{ "enabled": false }'
الاستجابة
{  "object": "address_forward",  "id": "9a4c1e7b-2d3f-4b5a-8c6d-0e1f2a3b4c5d",  "addressId": "5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18",  "email": "[email protected]",  "enabled": false,  "status": "paused",  "destination": "mailbox"}

حين تُوقَف آخر وجهة مفعّلة مؤقتًا، يعود العنوان إلى الاحتفاظ ببريده هنا، ويبيّن destination ذلك.

يحتاج رمز وصول OAuth إلى رمز تحقق لهذا الاستدعاء. وإلى أن يتحقق التطبيق من رمز خلال آخر 60 دقيقة، يردّ الاستدعاء بـ 403 step_up_required ولا يغيّر شيئًا. ولا يُطلب ذلك من مفتاح API أبدًا. وتبيّن صفحة المصادقة كيف تطلب رمزًا وتتحقق منه.

إزالة وجهة

يتطلب domains:write. استخدم DELETE /domains/{id}/addresses/{addressId}/forwards/{forwardId}. ولا يُعاد توجيه أي شيء إليها بعد ذلك.

curl
curl -X DELETE "$OE/domains/b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f/addresses/5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18/forwards/9a4c1e7b-2d3f-4b5a-8c6d-0e1f2a3b4c5d" -H "$AUTH"
الاستجابة
{  "object": "address_forward",  "id": "9a4c1e7b-2d3f-4b5a-8c6d-0e1f2a3b4c5d",  "addressId": "5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18",  "email": "[email protected]",  "deleted": true,  "destination": "mailbox"}

وإن كانت آخر وجهة مفعّلة، يعود العنوان إلى الاحتفاظ ببريده هنا.

يحتاج رمز وصول OAuth إلى رمز تحقق لهذا الاستدعاء. وإلى أن يتحقق التطبيق من رمز خلال آخر 60 دقيقة، يردّ الاستدعاء بـ 403 step_up_required ولا يغيّر شيئًا. ولا يُطلب ذلك من مفتاح API أبدًا. وتبيّن صفحة المصادقة كيف تطلب رمزًا وتتحقق منه.

طلب التأكيد من وجهة مرة أخرى

يتطلب domains:write. ويرسل POST /domains/{id}/addresses/{addressId}/forwards/{forwardId}/resend رسالة التأكيد مرة أخرى.

curl
curl -X POST "$OE/domains/b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f/addresses/5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18/forwards/9a4c1e7b-2d3f-4b5a-8c6d-0e1f2a3b4c5d/resend" -H "$AUTH"
الاستجابة
{  "object": "address_forward_consent",  "id": "9a4c1e7b-2d3f-4b5a-8c6d-0e1f2a3b4c5d",  "addressId": "5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18",  "email": "[email protected]",  "status": "sent"}

status هو sent، أو already-confirmed حين لا تحتاج الوجهة إلى شيء، أو too-soon حين تكون آخر رسالة قد خرجت قبل لحظات، أو revoked حين تكون الوجهة قد رفضت البريد من مساحة العمل هذه، أو send-failed حين يتعذّر إرسال الرسالة.

يحتاج رمز وصول OAuth إلى رمز تحقق لهذا الاستدعاء. وإلى أن يتحقق التطبيق من رمز خلال آخر 60 دقيقة، يردّ الاستدعاء بـ 403 step_up_required ولا يغيّر شيئًا. ولا يُطلب ذلك من مفتاح API أبدًا. وتبيّن صفحة المصادقة كيف تطلب رمزًا وتتحقق منه.

المرجع