Browse Source

[Rspamd] Log mail that was put into junk folder and keep a copy in quarantine

andryyy 4 years ago
parent
commit
6d46ee795b

+ 3 - 1
data/conf/rspamd/local.d/metadata_exporter.conf

@@ -53,7 +53,9 @@ return function(task)
     and not task:has_symbol('GLOBAL_RCPT_BL')
     and not task:has_symbol('MAILCOW_BLACK') then
       local action = task:get_metric_action('default')
-      return (action == 'reject')
+      if action == 'reject' or action == 'add header' then
+        return true
+      end
   end
   return false
 end

+ 3 - 11
data/conf/rspamd/meta_exporter/pipe.php

@@ -220,15 +220,8 @@ foreach (json_decode($rcpts, true) as $rcpt) {
 foreach ($rcpt_final_mailboxes as $rcpt_final) {
   error_log("QUARANTINE: quarantine pipe: processing quarantine message for rcpt " . $rcpt_final . PHP_EOL);
   try {
-    // Fall back to reject
-    if ($action == "add header") {
-      $action = "header";
-    }
-    else {
-      $action = "reject";
-    }
-    $stmt = $pdo->prepare("INSERT INTO `quarantine` (`qid`, `subject`, `score`, `sender`, `rcpt`, `symbols`, `user`, `ip`, `msg`, `action`, `fuzzy_hashes`, `type`)
-      VALUES (:qid, :subject, :score, :sender, :rcpt, :symbols, :user, :ip, :msg, :action, :fuzzy_hashes, :type)");
+    $stmt = $pdo->prepare("INSERT INTO `quarantine` (`qid`, `subject`, `score`, `sender`, `rcpt`, `symbols`, `user`, `ip`, `msg`, `action`, `fuzzy_hashes`)
+      VALUES (:qid, :subject, :score, :sender, :rcpt, :symbols, :user, :ip, :msg, :action, :fuzzy_hashes)");
     $stmt->execute(array(
       ':qid' => $qid,
       ':subject' => $subject,
@@ -240,8 +233,7 @@ foreach ($rcpt_final_mailboxes as $rcpt_final) {
       ':ip' => $ip,
       ':msg' => $raw_data,
       ':action' => $action,
-      ':fuzzy_hashes' => $fuzzy,
-      ':type' => $action
+      ':fuzzy_hashes' => $fuzzy
     ));
     $stmt = $pdo->prepare('DELETE FROM `quarantine` WHERE `rcpt` = :rcpt AND `id` NOT IN (
       SELECT `id`