可以通过lua script 进行add_header的操作
下面是在 https://github.com/vstakhov/rspamd/issues/893 直接拿来用的,仅做记录
rspamd_config:register_symbol({
name = 'RMILTER_HEADERS',
type = 'postfilter',
callback = function(task)
local metric_score = task:get_metric_score('default')
local score = metric_score[1]
local required_score = metric_score[2]
-- X-Spamd-Bar & X-Spam-Level
local spambar
local spamlevel = ''
if score < 0 then
spambar = string.rep('-', score*-1)
elseif score > 0 then
spambar = string.rep('+', score*1)
spamlevel = string.rep('*', score*1)
else
spambar = '/'
end
-- X-Spam-Status
local is_spam
local spamstatus
local action = task:get_metric_action('default')
if action ~= 'no action' and action ~= 'greylist' then
is_spam = 'Yes'
else
is_spam = 'No'
end
spamstatus = is_spam .. ', score=' .. string.format('%.2f', score)
-- X-Spam-Score & X-Spam-Flag
local spamscore = string.format('%.2f', score)
local spamflag = is_spam
-- Add headers
task:set_rmilter_reply({
add_headers = {
['X-Spamd-Bar'] = spambar,
['X-Spam-Level'] = spamlevel,
['X-Spam-Status'] = spamstatus,
['X-Spam-Score'] = spamscore,
['X-Spam-Flag'] = spamflag
},
remove_headers = {
['X-Spamd-Bar'] = 1,
['X-Spam-Level'] = 1,
['X-Spam-Status'] = 1,
['X-Spam-Score'] = 1,
['X-Spam-Flag'] = 1
}
})
end
})