]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Allow headers addition if configured
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 12 Nov 2021 21:18:49 +0000 (21:18 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 12 Nov 2021 21:18:49 +0000 (21:18 +0000)
lualib/lua_scanners/cloudmark.lua

index bfea884cb234627f58aa0daddc73de2eae4ca40f..5993c4fe2afb6327a8043ee1a9edb2d99467d375 100644 (file)
@@ -27,6 +27,7 @@ local ucl = require "ucl"
 local rspamd_util = require "rspamd_util"
 local common = require "lua_scanners/common"
 local fun = require "fun"
+local lua_mime = require "lua_mime"
 
 local N = 'cloudmark'
 -- Boundary for multipart transfers, generated on module init
@@ -108,6 +109,7 @@ local function cloudmark_config(opts)
     symbol_fail = 'CLOUDMARK_FAIL',
     symbol = 'CLOUDMARK_CHECK',
     symbol_spam = 'CLOUDMARK_SPAM',
+    add_headers = false, -- allow addition of the headers from Cloudmark
   }
 
   cloudmark_conf = lua_util.override_defaults(cloudmark_conf, opts)
@@ -225,6 +227,17 @@ local function parse_cloudmark_reply(task, rule, body)
     task:insert_result(rule.symbol_spam, 1.0, tostring(score))
   end
 
+  if rule.add_headers and type(obj.appendHeaders) == 'table' then
+    local headers_add = fun.tomap(fun.map(function(h)
+      return h.headerField,{
+        order = 1, value = h.body
+      }
+    end, obj.appendHeaders))
+    lua_mime.modify_headers(task, {
+      add = headers_add
+    })
+  end
+
 end
 
 local function cloudmark_check(task, content, digest, rule, maybe_part)