Gửi bằng template
Phần thân đã lưu cung cấp nội dung thư; request cung cấp phong bì và các giá trị.
Chạy lệnh gọi thật với không gian làm việc của bạn, bằng khóa của chính bạn.
POST /templates/{id}/send
Phần thân đã lưu cung cấp nội dung thư; request cung cấp phong bì và các giá trị.
Ví dụ
Cần templates:write VÀ emails:send. Tuân theo Idempotency-Key đúng như POST /emails.
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 }}Cả hai scope, và không cái nào thừa: templates:write vì caller đang truy cập một phần thân đã lưu, emails:send vì thư rời khỏi workspace. Một key được phép gửi phần thân của chính nó vẫn không thể gửi template của người khác.
Hãy ghim version trong bất cứ thứ gì tự động. Bỏ trống thì bạn phân giải ra bản đang được xuất bản tại thời điểm đó, đúng thứ bạn muốn khi người khác sở hữu nội dung, và không phải thứ bạn muốn vào buổi sáng họ viết lại nó.
subject ghi đè subject của chính template chỉ cho thư này, còn cancellableForSeconds, tracking và tags hoạt động đúng như trên một lần gửi thông thường.
POST /emails nhận một trường template làm cùng việc đó, dành cho caller vốn đã dựng thư ở đó. Endpoint này tồn tại để việc dùng một phần thân đã lưu không đòi hỏi phải cung cấp cấu trúc của một thư mà bạn không soạn.
Khi một lần gửi bị từ chối
Props là một hợp đồng chứ không phải một gợi ý, và mọi thất bại bên dưới đều xảy ra trước khi bất cứ thứ gì được gửi đi. Phương án còn lại, một thư đi ra với chỗ trống nơi lẽ ra là mã đơn hàng, không được bất cứ thứ gì báo cáo và không thể thu hồi.
| Mã | Trạng thái | Chuyện gì đã xảy ra |
|---|---|---|
| `resource_not_found` | 404 | Không có template nào trên connection này với id hoặc slug đó. |
| `template_not_published` | 422 | Nó tồn tại nhưng chưa từng được xuất bản, hoặc phiên bản bạn nêu vẫn còn là bản nháp. |
| `template_version_not_found` | 422 | Bạn đã ghim một version mà template này chưa từng có. |
| `missing_template_prop` | 422 | Một prop được khai báo required bị thiếu, null hoặc rỗng. |
| `unknown_template_prop` | 422 | Bạn đã truyền một key mà phiên bản đó không khai báo. Thông báo nêu tên những key mà nó có khai báo. |
| `unknown_template_slot` | 422 | Tương tự, nhưng cho một slot. |
| `invalid_template_prop` | 422 | Một giá trị không phải string, number hay boolean. Một object hoặc array không thể được thay vào HTML. |
param trên các lỗi này là template.props.<key>, nên client có thể chỉ thẳng vào trường bị sai mà không cần parse thông báo.