From ff6329d01b24d257da75807f41cc58efb00d6397 Mon Sep 17 00:00:00 2001 From: FreddleSpl0it <75116288+FreddleSpl0it@users.noreply.github.com> Date: Tue, 6 Oct 2026 09:41:34 +0200 Subject: [PATCH] [Rspamd] Fix CTE and boundary prefix in domain wide footer --- data/conf/rspamd/lua/rspamd.local.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/data/conf/rspamd/lua/rspamd.local.lua b/data/conf/rspamd/lua/rspamd.local.lua index 313ba7e90..5d7bcaaf3 100644 --- a/data/conf/rspamd/lua/rspamd.local.lua +++ b/data/conf/rspamd/lua/rspamd.local.lua @@ -856,6 +856,8 @@ rspamd_config:register_symbol({ local seen_cte local newline_s = newline(task) + -- use the CTE add_text_footer actually applied + local new_cte = rewrite.new_cte or 'quoted-printable' local function rewrite_ct_cb(name, hdr) if rewrite.need_rewrite_ct then @@ -877,13 +879,13 @@ rspamd_config:register_symbol({ return elseif name:lower() == 'content-transfer-encoding' then out[#out + 1] = string.format('%s: %s', - 'Content-Transfer-Encoding', 'quoted-printable') + 'Content-Transfer-Encoding', new_cte) -- update Content-Transfer-Encoding header task:set_milter_reply({ remove_headers = {['Content-Transfer-Encoding'] = 0}, }) task:set_milter_reply({ - add_headers = {['Content-Transfer-Encoding'] = 'quoted-printable'} + add_headers = {['Content-Transfer-Encoding'] = new_cte} }) seen_cte = true return @@ -895,7 +897,7 @@ rspamd_config:register_symbol({ task:headers_foreach(rewrite_ct_cb, {full = true}) if not seen_cte and rewrite.need_rewrite_ct then - out[#out + 1] = string.format('%s: %s', 'Content-Transfer-Encoding', 'quoted-printable') + out[#out + 1] = string.format('%s: %s', 'Content-Transfer-Encoding', new_cte) end -- End of headers @@ -914,7 +916,7 @@ rspamd_config:register_symbol({ out_parts[#out_parts + 1] = o out_parts[#out_parts + 1] = newline_s else - local removePrefix = "--\x0D\x0AContent-Type" + local removePrefix = "--\x0D\x0AContent-" if string.lower(string.sub(tostring(o[1]), 1, string.len(removePrefix))) == string.lower(removePrefix) then o[1] = string.sub(tostring(o[1]), string.len("--\x0D\x0A") + 1) end