From: Vsevolod Stakhov Date: Tue, 18 Dec 2018 15:51:27 +0000 (+0000) Subject: [Feature] Rspamadm: Allow to rewrite headers in messages X-Git-Tag: 1.9.0~396 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fe9e2384c6099cb57408f8d74b52f839d9d6326e;p=thirdparty%2Frspamd.git [Feature] Rspamadm: Allow to rewrite headers in messages --- diff --git a/lualib/rspamadm/mime.lua b/lualib/rspamadm/mime.lua index 423a6910ae..96bdfd72c0 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 "
" :count "*" +modify:option "-R --rewrite-header" + :description "Rewrites specific header, uses Lua string.format pattern" + :argname "" + :count "*" modify:option "-t --text-footer" :description "Adds footer to text/plain parts from a specific file" :argname "" @@ -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',