Die Konfiguration von KumoMTA ist Lua. Sie müssen kein Lua-Entwickler sein. Es reicht, sie lesen zu können und Muster zu übernehmen.
Die fünf Konstrukte, die Ihnen überall begegnen:
1. Modul + Funktion:
local kumo = require 'kumo'
kumo.on('init', function()
kumo.start_esmtp_listener { listen = '0.0.0.0:25' }
end)
2. Tabellen (die "Konfigurationsblöcke" von KumoMTA):
kumo.on('init', function()
kumo.define_spool { name='data', path='/var/spool/kumomta/data', kind='RocksDB' }
kumo.define_spool { name='meta', path='/var/spool/kumomta/meta', kind='RocksDB' }
end)
3. Event-Hooks:
kumo.on('smtp_server_message_received', function(msg)
-- inspect/modify the message
msg:set_meta('tenant', 'acme-marketing')
end)
4. Musterbasierte Throttles:
kumo.on('get_queue_config', function(domain, tenant, campaign)
return kumo.make_queue_config {
max_connection_rate = '10/s',
max_message_rate = '500/s',
}
end)
5. Musterabgleich zur Abstimmung pro Ziel:
if domain == 'gmail.com' then ...
elseif domain:match('%.protection%.outlook%.com$') then ...
end
Das sind 90 % dessen, was Sie schreiben werden. Die Doku unter docs.kumomta.com wiederholt diese Muster unermüdlich.
Melden Sie sich an, um festzuhalten, was Sie gelesen haben.