문서로 건너뛰기
API

템플릿으로 발송

저장된 본문이 메시지를 제공하고, 요청이 봉투와 값을 제공합니다.

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

본인 키로 워크스페이스에 실제 호출을 실행합니다.

POST /templates/{id}/send

저장된 본문이 메시지를 제공하고, 요청이 봉투와 값을 제공합니다.

예시

templates:writeemails:send가 모두 필요합니다. Idempotency-KeyPOST /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" }  }'
응답
{  "object": "email",  "id": "msg_c5f21cc6…",  "status": "queued",  "from": "[email protected]",  "subject": "Order AC-4192 is on its way",  "template": { "id": "order-shipped", "version": 5 }}

두 스코프 모두 필요하며 어느 쪽도 군더더기가 아닙니다. 호출자가 저장된 본문에 접근하므로 templates:write가, 메일이 워크스페이스를 떠나므로 emails:send가 필요합니다. 자기 본문을 보낼 수 있는 키라도 남의 템플릿은 보낼 수 없습니다.

자동화된 곳에서는 version을 고정하세요. 생략하면 그 시점에 게시되어 있는 것을 해석하는데, 문구의 주인이 다른 사람일 때는 그것이 원하는 동작이지만 그들이 문구를 고쳐 쓴 날 아침에는 아닙니다.

subject는 이 메시지에 한해 템플릿 자체의 제목을 덮어쓰고, cancellableForSeconds, tracking, tags는 일반 발송에서와 똑같이 동작합니다.

이미 POST /emails에서 메시지를 구성하는 호출자를 위해, 그쪽에도 같은 일을 하는 template 필드가 있습니다. 이 엔드포인트는 저장된 본문을 쓰려고 작성하지도 않는 메시지의 형태를 채워 넣지 않아도 되도록 존재합니다.

발송이 거부되는 경우

props는 권고가 아니라 계약이며, 아래의 모든 실패는 무언가 발송되기 전에 일어납니다. 그 대안, 즉 주문 번호가 있어야 할 자리가 비어 있는 메시지가 나가는 상황은 어디에도 보고되지 않고 회수할 수도 없습니다.

코드상태무슨 일이 일어났는가
`resource_not_found`404해당 id나 slug를 가진 템플릿이 이 connection에 없습니다.
`template_not_published`422존재하지만 한 번도 게시된 적이 없거나, 지정한 버전이 아직 초안입니다.
`template_version_not_found`422이 템플릿에 존재한 적 없는 version을 고정했습니다.
`missing_template_prop`422required로 선언된 prop이 없거나 null이거나 비어 있습니다.
`unknown_template_prop`422해당 버전이 선언하지 않은 키를 전달했습니다. 오류 메시지가 선언된 키들을 알려 줍니다.
`unknown_template_slot`422슬롯에 대해서도 동일합니다.
`invalid_template_prop`422string, number, boolean이 아닌 값입니다. object나 array는 HTML에 치환할 수 없습니다.

이 오류들의 paramtemplate.props.<key>이므로, 클라이언트는 메시지를 파싱하지 않고도 잘못된 필드를 짚어 줄 수 있습니다.