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

عرض مسارات الإرسال

المساران اللذان يسير فيهما البريد، مع أرقام الارتدادات والشكاوى.

GET/sending/streams

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

GET /sending/streams

المساران اللذان يسير فيهما البريد، مع أرقام الارتدادات والشكاوى.

مثال

يتطلب emails:read. يسير البريد في مسارين لكلٍّ منهما طوابيره وسمعته: transactional لبريد التطبيق مثل إعادة تعيين كلمات المرور والإيصالات، وbroadcast للنشرات البريدية. ويأتي كل مسار بأرقامه لآخر 7 أيام وبقيم limits التي يُلزَم بها مسار الرسائل الجماعية.

curl
curl "$OE/sending/streams" -H "$AUTH"
الاستجابة
{ "object": "list", "data": [{  "object": "sending_stream",  "stream": "broadcast",  "status": "active",  "pausedAt": null,  "pausedReason": null,  "resumedAt": null,  "window": {    "since": "2026-10-04T09:41:00.000Z",    "until": "2026-10-11T09:41:00.000Z",    "recipients": 18240,    "bounced": 212,    "complained": 9,    "bounceRate": 0.0116,    "complaintRate": 0.0005  },  "limits": { "bounceRate": 0.04, "complaintRate": 0.002, "minimumRecipients": 500, "windowDays": 7 }}] }

يوقف مسار الرسائل الجماعية نفسه عندما يتجاوز معدل ارتداده 4% أو معدل الشكاوى 0.2% خلال تلك الأيام الـ7، بعد بلوغه minimumRecipients. يبيّن pausedReason أيّهما، ويتلقى مالك مساحة العمل رسالة بريد، ويستمر بريد التطبيق في الخروج.

ما دام موقوفًا، فإن الرسالة المرسلة مع stream بقيمة broadcast وأي رسالة جماعية جديدة تعطيان 409 stream_paused، وتُحتجز الرسائل الجماعية الجاري إرسالها.

اختيار مسار

يتطلب emails:send. يختار stream المسار في POST /emails، وفي كل رسالة من POST /emails/batch، وفي POST /templates/{id}/send. قيمته transactional ما لم تحدد غير ذلك، وكل نسخة من رسالة جماعية تسير عبر broadcast.

curl
curl -X POST "$OE/emails" -H "$AUTH" -H "Content-Type: application/json" \  -d '{ "from": "[email protected]", "to": "[email protected]", "subject": "What is new in October", "text": "Three things shipped this month.", "stream": "broadcast" }'
الاستجابة
{ "object": "email", "id": "msg_5f1c9a0e7b2d4c6a8e3f1b7d", "status": "queued", "stream": "broadcast" }

عبر SMTP تؤدي الترويسة X-OpenEmail-Stream: broadcast الغرض نفسه، وتُزال قبل خروج الرسالة.

استئناف مسار موقوف

يتطلب domains:write ومالك مساحة العمل. يستأنف POST /sending/streams/broadcast/resume المسار: تخرج الرسائل المحتجزة فورًا ويبدأ عدّ الأيام الـ7 من جديد من هذه اللحظة، فنظّف الجمهور أولًا.

curl
curl -X POST "$OE/sending/streams/broadcast/resume" -H "$AUTH"
الاستجابة
{  "object": "sending_stream",  "stream": "broadcast",  "status": "active",  "pausedAt": null,  "pausedReason": null,  "resumedAt": null,  "window": {    "since": "2026-10-04T09:41:00.000Z",    "until": "2026-10-11T09:41:00.000Z",    "recipients": 18240,    "bounced": 212,    "complained": 9,    "bounceRate": 0.0116,    "complaintRate": 0.0005  },  "limits": { "bounceRate": 0.04, "complaintRate": 0.002, "minimumRecipients": 500, "windowDays": 7 }}

المسار غير الموقوف يعطي 409 stream_not_paused.

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

المرجع