Aller au contenu
Module 2 · Leçon 5 sur 25

Juste assez de Lua pour KumoMTA

Fait partie du cours KumoMTA : moteur d'envoi à fort volume, dans le module Installation, bases de Lua et systemd.

Auteur

La configuration de KumoMTA est en Lua. Inutile d'être développeur Lua. Savoir la lire et recopier des modèles suffit.

Les cinq constructions que vous verrez partout :

1. Module + fonction :

local kumo = require 'kumo'

kumo.on('init', function()
  kumo.start_esmtp_listener { listen = '0.0.0.0:25' }
end)

2. Tables (les « blocs de configuration » de 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. Hooks d'événements :

kumo.on('smtp_server_message_received', function(msg)
  -- inspect/modify the message
  msg:set_meta('tenant', 'acme-marketing')
end)

4. Throttles par motif :

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. Correspondance de motifs pour régler chaque destination :

if domain == 'gmail.com' then ...
elseif domain:match('%.protection%.outlook%.com$') then ...
end

C'est 90 % de ce que vous écrirez. La documentation sur docs.kumomta.com reprend ces modèles sans relâche.

Connectez-vous pour garder une trace de ce que vous avez lu.

Pulse · envoi de cold emails

Une infrastructure d’envoi rien qu’à vous.

Chaque domaine a son propre hôte MX, son IP, son sélecteur DKIM et son certificat. Prenez la version gérée, et nous l’exploitons pour vous, ou achetez une licence et faites-la tourner sur vos propres serveurs.

# sur un serveur Ubuntu tout neuf
$ cd pulse && sudo ./install.sh
→ docker compose up · kumomta · stalwart · caddy
→ dashboard ready on https://pulse.yourdomain.com
$

Aussi chez nous :Beat : la surveillance qui vous donne le correctifConseil : 65 $ US/h, sans forfait mensuel