AllyOneMail / Enviar correos

Enviar correos

Un endpoint central para todo envío transaccional o de marketing.

POST /api/v1/send

{
  "from": "hola@empresa.com",
  "to": "cliente@destino.com",
  "subject": "Asunto del correo",
  "html": "<p>Contenido en HTML</p>",
  "text": "Contenido en texto plano (fallback)",
  "reply_to": "soporte@empresa.com",
  "attachments": [
    { "filename": "factura.pdf", "content": "<base64>", "type": "application/pdf" }
  ],
  "tags": ["bienvenida"],
  "metadata": { "order_id": "1234" },
  "track_opens": true,
  "track_clicks": true,
  "test_mode": false
}
CampoObligatorioNotas
from, to, subjectSísubject hasta 998 caracteres. to acepta string o array.
html / textAl menos unoEnvía los dos cuando sea posible — text es el fallback para clientes sin HTML.
attachmentsNoContenido en base64.
track_opens / track_clicksNoActivados por defecto.
test_modeNoValida el payload sin entregar de verdad — útil en CI.

Envío idempotente

Para evitar duplicados en un reintento de red, usa POST /api/v2/messages — mismo esquema de arriba, más idempotency_key (hasta 200 caracteres). La clave vale 7 días:

SituaciónRespuesta
Primera llamada con la claveEnvío normal.
Misma clave y mismo contenido, envío ya concluido200 con el message_id original y "deduplicated": true — no se reenvía nada.
Misma clave, primera llamada aún en curso202 {"status": "processing"} — vuelve a consultar en unos instantes.
Misma clave con contenido diferente409 IDEMPOTENCY_CONFLICT.
Enviar correos — AllyOneMail