KumoMTA est un binaire Rust unique, avec des scripts Lua pour toute la configuration d'exécution. Le même binaire gère les listeners SMTP, les files, la distribution, les logs et l'introspection HTTP.
Modèle de processus :
┌─ 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)
Les notions que vous allez croiser :
| Terme | Signification |
|---|---|
| Tenant | Expéditeur logique (souvent un client d'un ESP) |
| Egress source | Une IP source liée pour les connexions sortantes |
| Egress pool | Un groupe de sources entre lesquelles on alterne |
| Scheduled queue | File par tenant × par destination |
| Throttle | Limite de débit (msgs/s ou connexions) par clé |
| Hook | Callback Lua sur un événement : smtp_server_message_received, smtp_client_message_delivered, etc. |
Tout s'assemble en Lua. Pas de XML, pas d'INI, pas de main.cf. Lisez init.lua et vous savez ce que fait le MTA.
Connectez-vous pour garder une trace de ce que vous avez lu.