[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