KumoMTA ist ein einzelnes Rust-Binary, dessen gesamte Laufzeitkonfiguration in Lua geschrieben wird. Dasselbe Binary übernimmt SMTP-Listener, Queues, Zustellung, Logging und HTTP-Introspektion.
Prozessmodell:
┌─ 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)
Wichtige Begriffe, die Ihnen begegnen werden:
| Begriff | Bedeutung |
|---|---|
| Tenant | Logischer Absender (oft ein Kunde eines ESP) |
| Egress source | Eine gebundene Quell-IP für ausgehende Verbindungen |
| Egress pool | Eine Gruppe von Quellen, zwischen denen rotiert wird |
| Scheduled queue | Queue pro Tenant × pro Ziel |
| Throttle | Rate Limit (Nachrichten/s oder Verbindungen) pro Schlüssel |
| Hook | Lua-Callback für Ereignisse: smtp_server_message_received, smtp_client_message_delivered usw. |
Alles wird über Lua verbunden. Es gibt kein XML, kein INI, keine main.cf. Lesen Sie init.lua, und Sie wissen, was der MTA tut.
Melden Sie sich an, um festzuhalten, was Sie gelesen haben.