It is confusing to have MULTIPLE_FROM with a single address in options, which happens if one of addresses is empty - usually because of misplaces <>. While here simplify condition.tags/3.0
@@ -576,15 +576,8 @@ rspamd_config.MISSING_FROM = { | |||
rspamd_config.MULTIPLE_FROM = { | |||
callback = function(task) | |||
local from = task:get_from('mime') | |||
if from and from[1] then | |||
if #from > 1 then | |||
return true,1.0,table.concat( | |||
fun.totable( | |||
fun.map(function(a) return a.addr end, | |||
fun.filter(function(a) return a.addr and a.addr ~= '' end, | |||
from))), | |||
',') | |||
end | |||
if from and from[2] then | |||
return true, 1.0, fun.totable(fun.map(function(a) return a.raw end, from)) | |||
end | |||
return false | |||
end, |
@@ -86,7 +86,7 @@ FROM_NEQ_ENVFROM | |||
PHISH_SENDER_A | |||
Scan File ${TESTDIR}/messages/phish_sender.eml | |||
Expect Symbol With Score And Exact Options MULTIPLE_FROM 9.0 any@attack.com,admin@legitimate.com | |||
Expect Symbol With Score And Exact Options MULTIPLE_FROM 9.0 <any@attack.com> <admin@legitimate.com> | |||
Expect Symbol With Score And Exact Options MULTIPLE_UNIQUE_HEADERS 7.0 From | |||
PHISH_SENDER_B |