commit fe9e238: [Feature] Rspamadm: Allow to rewrite headers in messages

Vsevolod Stakhov vsevolod at highsecure.ru
Thu Dec 27 18:28:11 UTC 2018


Author: Vsevolod Stakhov
Date: 2018-12-18 15:51:27 +0000
URL: https://github.com/rspamd/rspamd/commit/fe9e2384c6099cb57408f8d74b52f839d9d6326e

[Feature] Rspamadm: Allow to rewrite headers in messages

---
 lualib/rspamadm/mime.lua | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/lualib/rspamadm/mime.lua b/lualib/rspamadm/mime.lua
index 423a6910a..96bdfd72c 100644
--- a/lualib/rspamadm/mime.lua
+++ b/lualib/rspamadm/mime.lua
@@ -142,6 +142,10 @@ modify:option "-r --remove-header"
       :description "Removes specific header (all occurrences)"
       :argname "<header>"
       :count "*"
+modify:option "-R --rewrite-header"
+      :description "Rewrites specific header, uses Lua string.format pattern"
+      :argname "<header=pattern>"
+      :count "*"
 modify:option "-t --text-footer"
       :description "Adds footer to text/plain parts from a specific file"
       :argname "<file>"
@@ -670,6 +674,20 @@ local function modify_handler(opts)
         end
       end
 
+      for _,h in ipairs(opts['rewrite_header']) do
+        local hname,hpattern = h:match('^([^=]+)=(.+)$')
+        if hname == name then
+          local new_value = string.format(hpattern, hdr.decoded)
+          new_value = string.format('%s:%s%s%s',
+              name, hdr.separator,
+              rspamd_util.fold_header(name,
+                  rspamd_util.mime_header_encode(new_value),
+                  task:get_newlines_type()), newline_s)
+          io.write(new_value)
+          return
+        end
+      end
+
       if need_rewrite_ct then
         if name:lower() == 'content-type' then
           local nct = string.format('%s: %s/%s; charset=utf-8%s',


More information about the Commits mailing list