ارسال با یک قالب
بدنهٔ ذخیرهشده پیام را میدهد؛ درخواست، پاکت و مقادیر را.
فراخوانی واقعی را با کلید خودتان روی فضای کاری شما اجرا میکند.
POST /templates/{id}/send
بدنهٔ ذخیرهشده پیام را میدهد؛ درخواست، پاکت و مقادیر را.
نمونه
نیازمند templates:write و emails:send. دقیقاً مانند POST /emails به Idempotency-Key احترام میگذارد.
curl -X POST "$OE/templates/order-shipped/send" -H "$AUTH" \ -H "Content-Type: application/json" -H "Idempotency-Key: order:AC-4192:shipped" \ -d '{ "from": "Acme Dispatch <[email protected]>", "to": ["[email protected]"], "version": 5, "props": { "orderId": "AC-4192", "customer": "Ada" } }'{ "object": "email", "id": "msg_c5f21cc6…", "status": "queued", "from": "[email protected]", "subject": "Order AC-4192 is on its way", "template": { "id": "order-shipped", "version": 5 }}هر دو scope لازماند و هیچکدام زائد نیست: templates:write چون فراخوان به یک بدنهٔ ذخیرهشده دست مییابد، و emails:send چون ایمیل از فضای کاری بیرون میرود. کلیدی که اجازهٔ فرستادن بدنههای خودش را دارد، همچنان نمیتواند قالب کس دیگری را بفرستد.
در هر چیز خودکار، version را ثابت کنید. اگر آن را ندهید، به هر نسخهای که در آن لحظه منتشر است میرسید؛ همان چیزی که وقتی مالک متن کس دیگری است میخواهید، و همان چیزی که صبح روزی که او متن را بازنویسی میکند نمیخواهید.
subject فقط برای همین پیام، موضوع خودِ قالب را بازنویسی میکند، و cancellableForSeconds، tracking و tags دقیقاً مانند یک ارسال ساده رفتار میکنند.
POST /emails فیلدی به نام template میپذیرد که همین کار را میکند، برای فراخوانی که پیامهایش را همانجا میسازد. این نقطهٔ پایانی وجود دارد تا دستیافتن به یک بدنهٔ ذخیرهشده نیازمند تعیین شکل پیامی نباشد که شما آن را نمینویسید.
وقتی یک ارسال رد میشود
props یک قرارداد است نه یک پیشنهاد، و هر شکستی که در پایین آمده پیش از هرگونه ارسالی رخ میدهد. جایگزین آن، یعنی رفتن پیامی با جای خالی بهجای شمارهٔ سفارش، در هیچجا گزارش نمیشود و بازگشتپذیر هم نیست.
| کد | وضعیت | چه اتفاقی افتاده |
|---|---|---|
| `resource_not_found` | 404 | در این connection هیچ قالبی با آن id یا slug نیست. |
| `template_not_published` | 422 | وجود دارد و هرگز منتشر نشده، یا نسخهای که نام بردهاید هنوز پیشنویس است. |
| `template_version_not_found` | 422 | version ای را ثابت کردهاید که این قالب هرگز نداشته است. |
| `missing_template_prop` | 422 | یک prop که required اعلام شده بود غایب، null یا خالی بود. |
| `unknown_template_prop` | 422 | کلیدی فرستادهاید که این نسخه آن را اعلام نکرده است. پیام خطا کلیدهایی را که اعلام کرده نام میبرد. |
| `unknown_template_slot` | 422 | همان، برای یک slot. |
| `invalid_template_prop` | 422 | مقداری که string، number یا boolean نیست. object یا array را نمیتوان در HTML جایگزین کرد. |
param در این خطاها template.props.<key> است، پس کلاینت میتواند بدون تجزیهٔ پیام، به فیلدی که اشتباه فرستاده اشاره کند.