From 5e478a32df91bac32f9cbb150aad6dd0228f8240 Mon Sep 17 00:00:00 2001 From: DocFraggle <24852248+DocFraggle@users.noreply.github.com> Date: Mon, 2 Mar 2026 15:49:11 +0100 Subject: [PATCH] Fix lua script sub-addressing (#7037) * Fix lua script sub-addressing * Fix subject tagging in rspamd.local.lua as well --------- Co-authored-by: Hailer, Christian Co-authored-by: DocFraggle --- data/conf/rspamd/lua/rspamd.local.lua | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/data/conf/rspamd/lua/rspamd.local.lua b/data/conf/rspamd/lua/rspamd.local.lua index 503b41e6..313ba7e9 100644 --- a/data/conf/rspamd/lua/rspamd.local.lua +++ b/data/conf/rspamd/lua/rspamd.local.lua @@ -392,6 +392,7 @@ rspamd_config:register_symbol({ local rspamd_http = require "rspamd_http" local rcpts = task:get_recipients('smtp') local lua_util = require "lua_util" + local tagged_rcpt = task:get_symbol("TAGGED_RCPT") local function remove_moo_tag() local moo_tag_header = task:get_header('X-Moo-Tag', false) @@ -416,12 +417,9 @@ rspamd_config:register_symbol({ -- Check if recipient has a tag (contains '+') local tag = nil - if rcpt_user:find('%+') then - local base_user, tag_part = rcpt_user:match('^(.-)%+(.+)$') - if base_user and tag_part then - tag = tag_part - rspamd_logger.infox("TAG_MOO: found tag in recipient: %s (base: %s, tag: %s)", rcpt_addr, base_user, tag) - end + if tagged_rcpt ~= nil then + tag = tagged_rcpt + rspamd_logger.infox("TAG_MOO: found tag in recipient: %s (base: %s, tag: %s)", rcpt_addr, base_user, tag) end if not tag then @@ -500,7 +498,8 @@ rspamd_config:register_symbol({ else rspamd_logger.infox("TAG_MOO: user wants subject modified for tagged mail") local sbj = task:get_header('Subject') or '' - new_sbj = '=?UTF-8?B?' .. tostring(util.encode_base64('[' .. tag .. '] ' .. sbj)) .. '?=' + local tag_value = tag[1] and tag[1].options and tag[1].options[1] or '' + new_sbj = '=?UTF-8?B?' .. tostring(util.encode_base64('[' .. tag_value .. '] ' .. sbj)) .. '?=' task:set_milter_reply({ remove_headers = { ['Subject'] = 1, @@ -945,4 +944,4 @@ rspamd_config:register_symbol({ return true end, priority = 1 -}) \ No newline at end of file +})