KumoMTA es un único binario en Rust con scripts en Lua para toda la configuración en tiempo de ejecución. El mismo binario maneja los listeners SMTP, las colas, la entrega, los logs y la introspección por HTTP.
Modelo de procesos:
┌─ Listener (SMTP)
├─ Listener (HTTP API)
[ kumod ] ──┐ │
├──► ├─ Queue (per scheduled queue: tenant × destination)
│ │
│ ├─ Egress sources (IP pools)
│ └─ Logging hooks → JSON / ClickHouse / S3
│
└─ Lua VM (config + per-event policy)
Conceptos clave que vas a encontrar:
| Término | Significado |
|---|---|
| Tenant | Remitente lógico (a menudo un cliente de un ESP) |
| Egress source | Una IP de origen asignada para conexiones salientes |
| Egress pool | Un grupo de sources entre los que se rota |
| Scheduled queue | Cola por tenant × por destino |
| Throttle | Límite de tasa (msgs/s o conexiones) por clave |
| Hook | Callback en Lua para eventos: smtp_server_message_received, smtp_client_message_delivered, etc. |
Todo se conecta mediante Lua. No hay XML, ni INI, ni main.cf. Lee init.lua y sabrás lo que hace el MTA.
Inicia sesión para llevar el registro de lo que ya leíste.