Перейти к документации
API

Отправка пакета

До 100 за раз.

POSTapi.openemail.uk/emails/batch

Выполняет настоящий запрос в вашем рабочем пространстве, с вашим собственным ключом.

По элементам, никогда «всё или ничего»

Каждое сообщение принимается или отклоняется самостоятельно, и ответ сообщает и о том, и о другом. Пакет, откатывающийся из-за одного плохого адреса, превратил бы ваш повтор в вопрос о том, какие сообщения уже ушли, — а именно от такого учёта вы и уходили, беря пакет.

Отправка пакета

Тело — массив либо { "emails": [...] }. Каждое сообщение принимает те же поля, что и одиночная отправка.

curl
curl -X POST "$OE/emails/batch" -H "$AUTH" -H "Content-Type: application/json" \  -d '{    "emails": [      { "from": "[email protected]", "to": ["[email protected]"],   "subject": "Invoice",  "html": "<p>1</p>" },      { "from": "[email protected]",   "to": ["[email protected]"], "subject": "Invoice",  "html": "<p>2</p>" },      { "from": "[email protected]", "to": ["broken@"],           "subject": "Invoice",  "html": "<p>3</p>" }    ]  }'
Ответ
HTTP/1.1 207 Multi-Status {  "object": "list",  "sent": 1,  "failed": 2,  "data": [    { "index": 0, "status": "ok", "email": { "id": "msg_e7e468…", "status": "sent" } },    {      "index": 1,      "status": "error",      "error": { "type": "permission_error", "code": "from_address_forbidden", "param": "from" }    },    {      "index": 2,      "status": "error",      "error": { "type": "validation_error", "code": "invalid_email_address", "param": "to.0" }    }  ]}

207, а не 200: часть прошла. Читайте data[].status по каждому элементу, а не ветвитесь по коду статуса.

Idempotency-Key в пакете внутренне расширяется по каждому элементу, поэтому один ключ на сотне сообщений не схлопывает их в первое.