API
Enviar un lote
Hasta 100 a la vez.
POSTapi.openemail.uk/emails/batch
Ejecuta la llamada real contra tu espacio de trabajo, con tu propia clave.
Por elemento, nunca todo o nada
Cada mensaje se acepta o se rechaza por su cuenta y la respuesta informa de ambas cosas. Un lote que revirtiera por una dirección mala convertiría tu reintento en la pregunta de qué mensajes ya habían salido, que es justo lo que usaste un lote para no tener que controlar.
Enviar un lote
El cuerpo es un array, o { "emails": [...] }. Cada mensaje admite los mismos campos que un envío 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, no 200: parte funcionó. Lee data[].status por elemento en lugar de ramificar según el código de estado.
Una Idempotency-Key en un lote se extiende internamente por elemento, así que una clave sobre cien mensajes no los colapsa en el primero.