Autoalojamiento

Mailrelay convierte los correos entrantes en webhooks para automatización autoalojada

Una nueva herramienta de código abierto llamada mailrelay acepta tráfico SMTP, analiza correos electrónicos y activa webhooks basados en reglas configurables para la automatización local.

Un sobre transformándose en un paquete de datos conectado a servidores
Ilustración creada para este artículo

Traducido automáticamente del original en inglés.

El 24 de octubre de 2026, el desarrollador gowthamgts lanzó mailrelay, un servidor de correo entrante de código abierto diseñado para cerrar la brecha entre los protocolos de correo tradicionales y la automatización moderna basada en HTTP. Esta solución autoalojada permite a los usuarios recibir correos, analizar su contenido y activar webhooks según reglas específicas, facilitando la integración fluida con servicios homelab y herramientas empresariales pequeñas que no admiten nativamente la ingesta de correos.

Qué ocurrió

El lanzamiento presenta un ligero servidor SMTP escrito en Go que actúa como relé para mensajes entrantes. En lugar de almacenar correos en un buzón tradicional para lectura humana, mailrelay evalúa cada mensaje contra condiciones definidas por el usuario y reenvía los datos a URLs de webhook especificadas. El sistema está diseñado para ser resiliente; confirma la recepción del correo inmediatamente con una respuesta 250 OK, mientras que la entrega real del webhook ocurre de forma asíncrona en segundo plano. Esto garantiza que los fallos temporales o las respuestas lentas de los servicios downstream no provoquen el rechazo (bounce) del correo original.

El proyecto ofrece múltiples opciones de despliegue para adaptarse a diferentes preferencias de infraestructura. Los usuarios pueden ejecutarlo mediante Docker, donde la interfaz web está habilitada por defecto, o como un binario independiente compilado desde el código fuente. La aplicación almacena todos los datos operativos, incluyendo una base de datos SQLite, archivos .eml sin procesar y ajustes de configuración, dentro de un único directorio /data. Esta estructura simplifica las copias de seguridad y la migración para quienes prefieren una gestión mínima de dependencias. Hay disponible un archivo rápido de Docker Compose para ayudar a los usuarios a probar la funcionalidad con un servidor de eco de muestra antes de conectarlo a servicios reales.

Detalles clave

  • Enrutamiento basado en reglas: Los usuarios pueden crear reglas en la interfaz web que coincidan con correos basándose en campos como From, To, Subject, Body, encabezados o direcciones sobre SMTP. Los patrones soportan globs y expresiones regulares.
  • Entrega asíncrona con reintentos: Los webhooks se envían en segundo plano con backoff exponencial. Cada intento queda registrado, y las entregas fallidas pueden reproducirse manualmente desde la interfaz.
  • Valores predeterminados de seguridad: Por defecto, los webhooks no pueden alcanzar redes privadas, localhost ni endpoints de metadatos de la nube. Esta restricción puede levantarse mediante variables de entorno para la integración de servicios internos.
  • Soporte de autenticación: La interfaz web admite proveedores OpenID Connect (OIDC) como Google, Okta y Authentik para un acceso seguro, aunque el inicio de sesión con GitHub no está soportado debido a limitaciones del protocolo.
  • Formato flexible de payload: Los webhooks reciben JSON analizado por defecto, pero los usuarios pueden personalizar la salida usando plantillas Go con funciones para unir listas o establecer valores de reserva.
  • Verificación de correo: El servidor realiza comprobaciones SPF, DKIM y DMARC, con opciones para registrar o aplicar estas políticas. También verifica los encabezados ARC para preservar los resultados de autenticación en correos reenviados.

Contexto

Durante muchos años, integrar el correo electrónico en flujos de trabajo automatizados requería middleware complejo o depender de plataformas SaaS de terceros. Los servidores SMTP tradicionales están diseñados para comunicación humano-humano, almacenando mensajes en buzones en lugar de disparar ejecución de código. Los webhooks, por el contrario, son el estándar para la comunicación máquina-máquina, permitiendo a las aplicaciones enviar datos en tiempo real vía HTTP. Mailrelay cierra esta brecha actuando como un endpoint SMTP que traduce eventos de correo en solicitudes HTTP.

Este enfoque es particularmente valioso en entornos autoalojados donde la privacidad y el control son prioridades. En lugar de otorgar a un servicio en la nube acceso a alertas financieras sensibles o tickets de soporte, las organizaciones pueden mantener todo el pipeline dentro de su propia red. La herramienta gestiona las complejidades del análisis de correos, incluida la extracción de adjuntos y el análisis de encabezados, presentando los datos en un formato JSON limpio que las aplicaciones modernas pueden consumir fácilmente.

Por qué importa

Los equipos que ejecutan su propio software a menudo luchan por conectar notificaciones legacy basadas en correo con dashboards modernos y herramientas de automatización. Por ejemplo, las alertas bancarias, notificaciones de envío o correos de monitoreo de sistemas suelen aterrizar en una bandeja de entrada, requiriendo intervención manual para actuar sobre ellos. Mailrelay permite que estos mensajes disparen automáticamente acciones en herramientas como Home Assistant, Paperless-ngx o APIs personalizadas. Esto reduce la carga de trabajo manual y asegura que la información crítica se procese inmediatamente sin demoras humanas.

Además, la capacidad de reproducir webhooks es una ventaja operativa significativa. En sistemas distribuidos, los fallos de red o los reinicios de servicios pueden causar que las entregas de webhooks fallen. Sin un mecanismo de reintento, estos eventos se pierden para siempre. Mailrelay registra cada intento y permite a los administradores reenviar correos específicos desde la UI, garantizando la consistencia de los datos. La postura de seguridad predeterminada, que bloquea el acceso a redes privadas a menos que se permita explícitamente, también protege contra exposiciones internas accidentales al configurar servicios expuestos externamente.

Qué puedes hacer

  • Despliega la pila rápida de Docker Compose para probar el listener SMTP y el servidor de eco de webhook localmente.
  • Configura smtp.allowed_recipients para restringir el servidor a aceptar solo correos para tus dominios o direcciones específicos.
  • Establece autenticación OIDC para la interfaz web utilizando proveedores como Authentik o Keycloak para asegurar el acceso administrativo.
  • Usa plantillas Go en la configuración de reglas para eliminar encabezados innecesarios y reducir el tamaño del payload enviado a tus servicios downstream.
  • Habilita webhook.allow_private_networks solo si tus servicios de automatización objetivo residen en la misma red local o puente Docker.
  • Monitorea el endpoint /metrics con Prometheus para rastrear el volumen de correos, tasas de éxito de webhooks y conteos de reintentos.

Más noticias

Todas las noticias