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 <christian.hailer@interhyp.de> Co-authored-by: DocFraggle <drfraggle@drfraggleshome.de>
This commit is contained in:
parent
22c94a4d2f
commit
5e478a32df
@ -392,6 +392,7 @@ rspamd_config:register_symbol({
|
|||||||
local rspamd_http = require "rspamd_http"
|
local rspamd_http = require "rspamd_http"
|
||||||
local rcpts = task:get_recipients('smtp')
|
local rcpts = task:get_recipients('smtp')
|
||||||
local lua_util = require "lua_util"
|
local lua_util = require "lua_util"
|
||||||
|
local tagged_rcpt = task:get_symbol("TAGGED_RCPT")
|
||||||
|
|
||||||
local function remove_moo_tag()
|
local function remove_moo_tag()
|
||||||
local moo_tag_header = task:get_header('X-Moo-Tag', false)
|
local moo_tag_header = task:get_header('X-Moo-Tag', false)
|
||||||
@ -416,13 +417,10 @@ rspamd_config:register_symbol({
|
|||||||
|
|
||||||
-- Check if recipient has a tag (contains '+')
|
-- Check if recipient has a tag (contains '+')
|
||||||
local tag = nil
|
local tag = nil
|
||||||
if rcpt_user:find('%+') then
|
if tagged_rcpt ~= nil then
|
||||||
local base_user, tag_part = rcpt_user:match('^(.-)%+(.+)$')
|
tag = tagged_rcpt
|
||||||
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)
|
rspamd_logger.infox("TAG_MOO: found tag in recipient: %s (base: %s, tag: %s)", rcpt_addr, base_user, tag)
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
if not tag then
|
if not tag then
|
||||||
rspamd_logger.infox("TAG_MOO: no tag found in recipient %s, removing moo tag", rcpt_addr)
|
rspamd_logger.infox("TAG_MOO: no tag found in recipient %s, removing moo tag", rcpt_addr)
|
||||||
@ -500,7 +498,8 @@ rspamd_config:register_symbol({
|
|||||||
else
|
else
|
||||||
rspamd_logger.infox("TAG_MOO: user wants subject modified for tagged mail")
|
rspamd_logger.infox("TAG_MOO: user wants subject modified for tagged mail")
|
||||||
local sbj = task:get_header('Subject') or ''
|
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({
|
task:set_milter_reply({
|
||||||
remove_headers = {
|
remove_headers = {
|
||||||
['Subject'] = 1,
|
['Subject'] = 1,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user