فهرست مسیرهای ارسال
دو مسیری که ایمیل در آنها میرود، با آمار برگشت و شکایتشان.
هر کدام از 2 فراخوانی را روی فضای کاری شما اجرا میکند.
GET /sending/streams
دو مسیری که ایمیل در آنها میرود، با آمار برگشت و شکایتشان.
نمونه
به emails:read نیاز دارد. ایمیل در دو مسیر با صفها و اعتبار خودشان میرود: transactional برای ایمیلهای برنامه مانند بازنشانی گذرواژه و رسید، و broadcast برای خبرنامهها. هر مسیر با آمار ۷ روز گذشتهاش و limits که مسیر ارسالهای گروهی به آن پایبند است میآید.
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% در آن ۷ روز بگذرد خودش متوقف میشود، به شرطی که به minimumRecipients رسیده باشد. pausedReason میگوید کدام، مالک فضای کاری ایمیلی دریافت میکند، و ایمیلهای برنامه همچنان فرستاده میشوند.
تا وقتی متوقف است، پیامی که با stream برابر broadcast فرستاده شود و یک ارسال گروهی تازه 409 stream_paused هستند، و ارسالهای گروهیِ در حال ارسال نگه داشته میشوند.
انتخاب مسیر
به emails:send نیاز دارد. stream در POST /emails، در هر پیامِ POST /emails/batch و در POST /templates/{id}/send مسیر را انتخاب میکند. اگر چیز دیگری نگویید transactional است، و هر نسخه از یک ارسال گروهی در broadcast میرود.
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 مسیر را ادامه میدهد: پیامهای نگهداشتهشده بیدرنگ فرستاده میشوند و شمارش ۷ روزه از همین حالا دوباره آغاز میشود، پس اول مخاطبان را پاکسازی کنید.
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 هرگز خواسته نمیشود. صفحهٔ احراز هویت نشان میدهد چطور کد بخواهید و آن را تأیید کنید.