Przejdź do dokumentacji
API

Wyślij z szablonu

Zapisana treść dostarcza wiadomość; żądanie dostarcza kopertę i wartości.

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

Uruchamia prawdziwe wywołanie na twojej przestrzeni roboczej, twoim własnym kluczem.

POST /templates/{id}/send

Zapisana treść dostarcza wiadomość; żądanie dostarcza kopertę i wartości.

Przykład

Wymaga templates:write ORAZ emails:send. Honoruje Idempotency-Key dokładnie tak jak POST /emails.

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" }  }'
Odpowiedź
{  "object": "email",  "id": "msg_c5f21cc6…",  "status": "queued",  "from": "[email protected]",  "subject": "Order AC-4192 is on its way",  "template": { "id": "order-shipped", "version": 5 }}

Oba zakresy i żaden nie jest zbędny: templates:write, bo wywołujący sięga po zapisaną treść, emails:send, bo poczta opuszcza przestrzeń roboczą. Klucz, który może wysyłać własne treści, wciąż nie może wysłać cudzego szablonu.

Przypinaj version we wszystkim, co zautomatyzowane. Pominięty — rozstrzygasz to, co jest opublikowane w danej chwili, czyli to, czego chcesz, gdy treść należy do kogoś innego, i nie to, czego chcesz tego ranka, gdy ją przepiszą.

subject nadpisuje temat szablonu tylko dla tej wiadomości, a cancellableForSeconds, tracking i tags zachowują się dokładnie tak jak przy zwykłej wysyłce.

POST /emails przyjmuje pole template, które robi to samo, z myślą o wywołującym, który i tak buduje tam wiadomości. Ten endpoint istnieje po to, by sięgnięcie po zapisaną treść nie wymagało podawania kształtu wiadomości, której wcale nie komponujesz.

Kiedy wysyłka zostaje odrzucona

Propsy to kontrakt, a nie sugestia, i każda poniższa awaria zachodzi, zanim cokolwiek zostanie wysłane. Alternatywa, czyli wiadomość wychodząca z pustym miejscem tam, gdzie miał być numer zamówienia, nie jest przez nic zgłaszana i nie da się jej odwołać.

KodStatusCo się stało
`resource_not_found`404Na tym połączeniu nie ma szablonu o tym identyfikatorze ani slugu.
`template_not_published`422Istnieje i nigdy nie był publikowany, albo wskazana wersja jest nadal robocza.
`template_version_not_found`422Przypiąłeś version, której ten szablon nigdy nie miał.
`missing_template_prop`422Prop zadeklarowany jako required był nieobecny, null albo pusty.
`unknown_template_prop`422Przekazałeś klucz, którego ta wersja nie deklaruje. Komunikat wymienia te, które deklaruje.
`unknown_template_slot`422To samo, dla slotu.
`invalid_template_prop`422Wartość, która nie jest stringiem, liczbą ani booleanem. Obiektu ani tablicy nie da się podstawić do HTML-a.

param przy tych błędach to template.props.<key>, więc klient może wskazać pole, które źle podał, bez parsowania komunikatu.