Nueva guía: cómo calentar una IP dedicada sin dañar tu reputación. Leer ahora →
MigoSMTP
Referencia

Webhooks

Reciba los eventos en cuanto ocurren, para que su sistema sepa siempre qué pasó con cada mensaje. Verifique cada solicitud con su firma.

Cómo funcionan los webhooks

Registre un endpoint HTTPS en el panel y elija los eventos que debe recibir. Cuando le ocurre algo a un mensaje, MigoSMTP envía a su endpoint una solicitud POST con un cuerpo JSON.

Tipos de evento

Suscríbase solo a los eventos que su sistema necesita. Cada evento incluye el id del mensaje, el destinatario y una marca de tiempo, para poder asociarlo con el mensaje que envió.

Ejemplo de payload

Los payloads son JSON enviados con una solicitud POST. Los valores aquí son solo ejemplos.

{
  "event": "delivered",
  "message_id": "msg_123",
  "recipient": "you@example.com",
  "timestamp": "2026-01-15T10:30:00Z"
}

Verifique la firma

Cualquiera que conozca su URL podría enviarle datos, así que verifique cada solicitud. Calcule un HMAC del cuerpo sin procesar de la solicitud con su secreto de firma y compárelo con el valor de la cabecera de firma mediante una comparación en tiempo constante. Rechace las solicitudes que no coincidan. El nombre de la cabecera y el algoritmo se muestran junto a su secreto de firma en el panel.

const crypto = require("crypto");
function valid(rawBody, received, secret) {
  const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
  const a = Buffer.from(expected), b = Buffer.from(received);
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}

Responda rápido

Devuelva un estado 2xx en cuanto haya guardado el evento y haga el trabajo real después, en una cola. Un endpoint lento o con fallos provoca reintentos y puede retrasar sus otros eventos.

Espere duplicados y eventos desordenados

Las entregas fallidas se reintentan, por lo que un mismo evento puede llegar más de una vez y los eventos pueden llegar desordenados. Use el id del mensaje y el tipo de evento para que su manejador sea idempotente, y use la marca de tiempo del evento en lugar de la hora de llegada.

Pruebe antes de depender de ello

Apunte el endpoint a un inspector de solicitudes o a un túnel hacia su máquina de desarrollo, envíe un mensaje de prueba y confirme que puede verificar la firma con tráfico real.

EventoSignificado
deliveredEl servidor receptor aceptó el mensaje.
bouncedNo se pudo entregar el mensaje. Deje de enviar a esta dirección salvo que fuera un problema temporal.
deferredFallo temporal; la entrega se reintentará.
openedEl destinatario abrió el mensaje. Tómelo como una señal aproximada, ya que las apps de correo pueden precargar imágenes.
clickedEl destinatario hizo clic en un enlace con seguimiento.
complainedEl destinatario marcó el mensaje como spam. Deje de enviar a esta dirección.
¿Le resultó útil esta página?Contactar con soporte

Empieza a enviar en minutos.

Crea una cuenta, añade tu dominio y envía tu primer correo.