diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/lua/forged_recipients.lua | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/plugins/lua/forged_recipients.lua b/src/plugins/lua/forged_recipients.lua index 6b6ec298b..d082b386d 100644 --- a/src/plugins/lua/forged_recipients.lua +++ b/src/plugins/lua/forged_recipients.lua @@ -31,7 +31,15 @@ function check_forged_headers(task) end if mime_rcpt then for _,mr in ipairs(mime_rcpt) do - if string.find(mr, sr) then + local i = string.find(mr, '<', 1, true) + if i then + local j = string.find(mr, '>', i, true) + if j then + mr = string.sub(mr, i+1, j-1) + end + end + + if string.lower(mr) == string.lower(sr) then res = true break end @@ -39,7 +47,14 @@ function check_forged_headers(task) end if mime_cc then for _,mr in ipairs(mime_cc) do - if string.find(mr, sr) then + local i = string.find(mr, '<', 1, true) + if i then + local j = string.find(mr, '>', i, true) + if j then + mr = string.sub(mr, i+1, j-1) + end + end + if string.lower(mr) == string.lower(sr) then res = true break end @@ -57,7 +72,14 @@ function check_forged_headers(task) local smtp_from = task:get_from() if smtp_form then local mime_from = msg:get_header('From') - if not mime_from or not string.find(mime_from[0], smtp_from) then + local i = string.find(mime_from[0], '<', 1, true) + if i then + local j = string.find(mime_from[0], '>', i, true) + if j then + mime_from[0] = string.sub(mime_from[0], i+1, j-1) + end + end + if not mime_from or not (string.lower(mime_from[0]) == string.lower(smtp_from)) then task:insert_result(symbol_sender, 1) end end |