Enviar amb una plantilla
El cos desat proporciona el missatge; la petició proporciona el sobre i els valors.
Executa la crida real contra el teu espai de treball, amb la teva pròpia clau.
POST /templates/{id}/send
El cos desat proporciona el missatge; la petició proporciona el sobre i els valors.
Exemple
Necessita templates:write I emails:send. Respecta Idempotency-Key exactament igual que 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 }}Tots dos àmbits, i cap no és redundant: templates:write perquè qui truca arriba a un cos desat, emails:send perquè el correu surt de l'espai de treball. Una clau que pot enviar els seus propis cossos continua sense poder enviar la plantilla d'algú altre.
Fixa version en qualsevol cosa automatitzada. Si l'omets, resols el que estigui publicat en aquell moment, que és el que vols quan el text és d'algú altre i no és el que vols el matí que el reescriuen.
subject substitueix el de la plantilla només per a aquest missatge, i cancellableForSeconds, tracking i tags es comporten exactament igual que en un enviament normal.
POST /emails accepta un camp template que fa el mateix, per a qui ja construeix missatges allà. Aquest endpoint existeix perquè arribar a un cos desat no exigeixi proporcionar la forma d'un missatge que no estàs component.
Quan es rebutja un enviament
Les props són un contracte i no pas un suggeriment, i totes les fallades de sota passen abans de despatxar res. L'alternativa, un missatge que surt amb un buit on hi havia el número de comanda, no la reporta res i no es pot recuperar.
| Codi | Estat | Què ha passat |
|---|---|---|
| `resource_not_found` | 404 | Cap plantilla d'aquesta connexió amb aquest id o slug. |
| `template_not_published` | 422 | Existeix i no s'ha publicat mai, o la versió que has indicat encara és un esborrany. |
| `template_version_not_found` | 422 | Has fixat una version que aquesta plantilla no ha tingut mai. |
| `missing_template_prop` | 422 | Una prop declarada required era absent, null o buida. |
| `unknown_template_prop` | 422 | Has passat una clau que la versió no declara. El missatge anomena les que sí que declara. |
| `unknown_template_slot` | 422 | El mateix, però per a un slot. |
| `invalid_template_prop` | 422 | Un valor que no és un string, un number o un boolean. Un object o un array no es poden substituir dins d'HTML. |
El param d'aquests és template.props.<key>, de manera que un client pot assenyalar el camp que ha errat sense analitzar el missatge.