Quarantäne Ordner für Rspamd

Rspamd hat sich als Nachfolger von Amavisd und Spamassassin etabliert, weil Anforderungen wie Performance, Erkennungsrate und Erweiterbarkeit besser gelöst werden. Trotzdem gibt es noch das eine oder andere Feature, das man von Amavisd / Spamassassin gewohnt ist und das nicht von Haus aus bei Rspamd dabei ist – zum Beispiel einen Quarantäne-Ordner, in den alle abgelehnten Mails verschoben werden, um später ggf. etwaige False-Positives wiederherstellen zu können.

Dazu reicht es, das folgendes Skript als Datei unter dem Namen /etc/rspamd/local.d/metadata_exporter.conf anzulegen:

# Define custom selector(s)
  custom_select {
    mine = <<EOD
return function(task)
  local action = task:get_metric_action('default')
  return (action == 'reject' or action == 'soft reject')
end
EOD;
  }
  custom_push {
    mine = <<EOD
return function (task, data, rule)
  folder = task:get_metric_action('default')
  folder = folder.gsub(folder, ' ', '_')
  local rspamd_logger = require "rspamd_logger"
  rspamd_logger.infox(task, 'METATEST %s', folder)
  local rspamd_util = require "rspamd_util"
  rspamd_util.mkdir('/var/mail/quarantine/' .. folder)
  file = io.open('/var/mail/quarantine/' .. folder .. '/' .. task:get_queue_id(), "w")
  file:write(tostring(data))
  file:close()
end
EOD;
  }

  rules {

    quarantine {
      selector = "mine";
      formatter = "default";
      backend = "mine";
    }
  }


1 comment

  • Hallo Matthias,

    ich habe das versucht mit deinem Script, da ich diese Funktion gerne hätte. Allerdings kommt da ein Fehler, und ich habe noch keine Lösung gefunden. Vielleicht kannst du mir da weiterhelfen.
    ====================================
    lua_metric_symbol_callback: call to (EXPORT_METADATA_quarantine) failed (2): [string „return function (task, data, rule)…“]:9: attempt to index global ‚file‘ (a nil value); trace: [1]:{[string „return function (task, data, rule)…“]:9 – [Lua]}; [2]:{/usr/share/rspamd/plugins/metadata_exporter.lua:636 – [Lua]};
    ====================================

    Danke und Gruss
    Ralf

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert