[rspamd] Frage: Eigenes Modul aktivieren
Carsten Rosenberg
cr at ncxs.de
Di Mär 1 21:30:05 CET 2022
Moin,
On 01.03.22 13:53, Achim Lammerts via Postfixbuch-users wrote:
> Hallo Liste,
> ich spiele gerade etwas mit Lua herum und versuche, ein eigenes Modul
> zum Laufen zu bekommen.
>
> Unter /etc/rspamd/plugins.d/ habe ich eine maildump.lua angelegt, die
> laut Doku automatisch geladen wird:
>
> rspamd_config.MAILDUMP = function(task)
> local messRaw = task:get_message()
> file = io.open("/etc/rspamd/maildump/test", "w")
> io.write(messRaw)
> io.close(file)
> end
Rspamd möchte an der Stelle einen Table an options in der ein Callback
enthalten ist. Hinter Callback steht immer die Funktion, die aufgerufen
wird, wenn das Symbol (MAILDUMP) an der Reihe ist
Das minimum wäre also so:
rspamd_config.MAILDUMP = {
callback = function(task)
local messRaw = task:get_message()
file = io.open("/etc/rspamd/maildump/test", "w")
io.write(messRaw)
io.close(file)
end
}
>
> Es wird aber keine Datei geschrieben und es entsteht auch kein Fehler,
> der Rückschlüsse zulässt. Ich habe dann unter /etc/rspamd/local.d/ eine
> maildump.conf angelegt:
>
> maildump {
> enabled = true;
> }
Siehst du deine Config denn in rspamadm configdump? Was sagt denn
rspamadm configtest dazu?
Wenn du ein ganzes Modul/Plugin schreiben willst möchte Rspamd hier ein
registriertes Modul und die passende Config dazu. Sonst wird es nicht
"gestartet". Die Configs werden aus modules.d eingelesen und erst von
dort Dateien in local.d included. Mindestens da fehlt die also eine Config.
Ich bin mir auch nicht ganz sicher ob rspamd_config.MAILDUMP hier reicht
oder ob es für ein Plugin nicht rspamd_config:register_symbol sein sollte.
>
> Jeweils immer den Dienst neu gestartet, aber es passiert nichts. Aktuell
> spiele ich nach diesen Anleitungen:
> https://rspamd.com/doc/modules/ und https://rspamd.com/doc/lua/
>
> Was mache ich falsch? Vielen Dank für die Hilfe!
>
> LG/A
>
https://rspamd.com/doc/tutorials/writing_rules.html
Das Einfachste fürs Testen ist: Lege dir eine Datei
/etc/rspamd/local.d/rspamd.lua an und pack das da rein. Dann brauchst du
keine extra Config. Beim neu Starten such nach dem verwendeten Symbol
wegen Fehlern.
Mit ein bisschen Logging gibt er dir wenn auch ein Lebenszeichen:
local rspamd_logger = require "rspamd_logger"
rspamd_config.MAILDUMP = {
callback = function(task)
rspamd_logger.infox(task, 'MAILDUMP - I'm alive')
local messRaw = task:get_message()
file = io.open("/etc/rspamd/maildump/test", "w")
io.write(messRaw)
io.close(file)
end
}
Viele Grüße
Carsten
Mehr Informationen über die Mailingliste Postfixbuch-users