técnico · respuesta con fuentes
Webhook de correo electrónico: definición e implementación técnica
Un webhook de correo es un callback HTTP que activa un proveedor de servicios de correo para notificar determinados eventos a un servidor de destino. En lugar de que la aplicación consulte periódicamente una API para conocer el estado, el proveedor envía un payload JSON o XML a una URL predefinida en cuanto ocurre un evento, como un fallo de entrega o un clic en un enlace.
Funcionamiento técnico
Cuando ocurre un evento, el proveedor de correo genera una solicitud HTTP POST. Esta solicitud contiene un payload con los metadatos del evento, como el ID del mensaje, la dirección del destinatario y la marca de tiempo. El servidor receptor debe escuchar en un endpoint público, validar la solicitud entrante y devolver una respuesta 200 OK para confirmar la recepción. Si el servidor devuelve un error, el proveedor puede reintentar la entrega con una estrategia de backoff exponencial.
Por qué importa a los remitentes
Los webhooks son fundamentales para mantener la reputación del remitente. Al recibir notificaciones en tiempo real de rebotes permanentes o quejas por spam, los desarrolladores pueden eliminar automáticamente las direcciones no válidas de sus listas. Esto evita volver a enviar a buzones inactivos, una de las principales señales que usan los ISP para calificar a los remitentes como de baja calidad. Responder rápido a estas señales garantiza una mayor entregabilidad global.
Consideraciones operativas
Entre los fallos habituales están los errores de tiempo de espera cuando el servidor receptor procesa el payload de forma síncrona. Para evitarlo, los desarrolladores deberían implementar una arquitectura asíncrona en la que el webhook se reciba, se ponga en cola en un sistema como Redis o RabbitMQ y se confirme de inmediato. Además, la seguridad es primordial: los servidores deberían verificar la firma del proveedor o comprobar la IP de origen para evitar notificaciones de eventos suplantadas.
Ejemplo concreto de implementación
Un flujo típico consiste en configurar una URL en un proveedor como Resend o Amazon SES. Cuando un usuario hace clic en un enlace de un correo, el proveedor envía una solicitud POST a /webhooks/email con un cuerpo como { event: click, email: user@example.com, link: https://site.com/offer }. A continuación, la aplicación actualiza el registro del usuario en la base de datos para marcar la campaña como exitosa.
Integración con herramientas
Configurar webhooks requiere una URL pública y una forma de probar los payloads. Los desarrolladores pueden usar SendHQ o sus herramientas gratuitas (https://sendhq.cc/tools) para cubrir los requisitos técnicos de su infraestructura de correo y asegurarse de que su configuración se ajuste a los estándares del sector.
Preguntas habituales de los equipos
¿Qué diferencia hay entre una API y un webhook?
Una API es una solicitud que el cliente hace al servidor para obtener datos. Un webhook es una solicitud que el servidor hace al cliente para enviarle datos automáticamente cuando ocurre un evento.
¿Cómo protejo un endpoint de webhook de correo?
Use tokens secretos en el encabezado, verifique la firma HMAC que proporciona el servicio de correo o restrinja el tráfico entrante a los rangos de IP específicos del proveedor.
¿Qué ocurre si mi servidor está caído durante un evento de webhook?
La mayoría de los proveedores profesionales ponen el evento en cola e intentan volver a entregarlo varias veces durante horas o días antes de marcarlo como no entregable.
Fuentes primarias
- Documentación de Resend — Resend
- Documentación para desarrolladores de Postmark — Postmark
- Guía para desarrolladores de Amazon SES — Amazon Web Services