پرش به مستندات
API

ارسال با یک قالب

بدنهٔ ذخیره‌شده پیام را می‌دهد؛ درخواست، پاکت و مقادیر را.

POSTapi.openemail.uk/templates/{id}/send

فراخوانی واقعی را با کلید خودتان روی فضای کاری شما اجرا می‌کند.

POST /templates/{id}/send

بدنهٔ ذخیره‌شده پیام را می‌دهد؛ درخواست، پاکت و مقادیر را.

نمونه

نیازمند templates:write و emails:send. دقیقاً مانند POST /emails به Idempotency-Key احترام می‌گذارد.

curl
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`422version ای را ثابت کرده‌اید که این قالب هرگز نداشته است.
`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> است، پس کلاینت می‌تواند بدون تجزیهٔ پیام، به فیلدی که اشتباه فرستاده اشاره کند.