[rspamd] Frage: Eigenes Modul aktivieren
Achim Lammerts
ml-pbu at syntaxys.de
Fr Mär 4 11:10:38 CET 2022
Guten Morgen,
inzwischen bin ich dem Fehler bzgl. der Initialisierung von Modulen auf
die Schliche gekommen. Allerdings gibt es nun einen anderen Fehler, den
ich noch nicht verstehe:
2022-03-04 11:03:10 #1152774(rspamd_proxy) <b779e5>; proxy;
lua_metric_symbol_callback: call to (MAIL2FILE) failed (2):
/etc/rspamd/plugins.d//mail2file.lua:12: bad argument #1 to 'write'
(string expected, got userdata); trace: [1]:{[C]:-1 - write [C]};
[2]:{/etc/rspamd/plugins.d//mail2file.lua:12 - <unknown> [Lua]};
Das Script:
rspamd_config.MAIL2FILE = {
callback = function(task)
local messRaw = task:get_message()
local rspamd_logger = require 'rspamd_logger'
rspamd_logger.infox(task, 'MAIL2FILE - I am alive')
rspamd_logger.infox(task, messRaw)
local messFile, err = io.open('/tmp/maildump/test', 'w')
if messFile==nil then
rspamd_logger.infox(task, 'MAIL2FILE Couldn't open file: '..err)
else
messFile:write(messRaw)
messFile:close()
end
end
}
Laut Doku liefert die Funktion einen String zurück:
https://rspamd.com/doc/lua/rspamd_task.html#mcea29
Also probiere ich es mal mit *messFile:write('Test')*
Dann funktioniert es. Es soll jedoch die Nachricht im Rohformat in die
Datei gespeichert werden …
Bei *rspamd_logger.infox(task, messRaw)* kommt übrigens auch nichts im
log an. Was ist falsch?
Vielen Dank für die Hilfe!
LG/A
Am 01.03.22 um 21:30 schrieb Carsten Rosenberg via Postfixbuch-users:
> 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
>
>
--
Wietse, I am so grateful.
Mehr Informationen über die Mailingliste Postfixbuch-users