API
Enviar um lote
Até 100 de uma vez.
POSTapi.openemail.uk/emails/batch
Executa a chamada real contra o seu espaço de trabalho, com a sua própria chave.
Por item, nunca tudo ou nada
Cada mensagem é aceite ou recusada por si, e a resposta relata ambas as coisas. Um lote que revertesse por causa de um endereço errado transformaria a sua repetição numa dúvida sobre quais as mensagens que já tinham saído, que é precisamente aquilo que o lote lhe evita andar a controlar.
Enviar um lote
O corpo é um array, ou { "emails": [...] }. Cada mensagem aceita os mesmos campos de um envio individual.
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, não 200: parte funcionou. Leia data[].status por item em vez de ramificar pelo código de estado.
Uma Idempotency-Key num lote é estendida internamente por item, pelo que uma chave em cem mensagens não as colapsa na primeira.