summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew Lewis <nerf@judo.za.org>2024-01-10 15:38:39 +0200
committerAndrew Lewis <nerf@judo.za.org>2024-01-10 15:38:39 +0200
commitc55e935c94acf43c0924317067b5ebf11567f904 (patch)
tree69030d64a0176ab3bf96ac08d9d77c6faa8197bb /src
parente9aa6550177993b54fb168fa535bb8a881001bcc (diff)
downloadrspamd-c55e935c94acf43c0924317067b5ebf11567f904.tar.gz
rspamd-c55e935c94acf43c0924317067b5ebf11567f904.zip
[Feature] Support suppressing DMARC reporting for particular recipients
Diffstat (limited to 'src')
-rw-r--r--src/plugins/lua/dmarc.lua14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/lua/dmarc.lua b/src/plugins/lua/dmarc.lua
index 99fede96a..792672bd0 100644
--- a/src/plugins/lua/dmarc.lua
+++ b/src/plugins/lua/dmarc.lua
@@ -267,7 +267,14 @@ local function dmarc_validate_policy(task, policy, hdrfromdom, dmarc_esld)
if settings.reporting.exclude_domains then
if settings.reporting.exclude_domains:get_key(policy.domain) or
settings.reporting.exclude_domains:get_key(rspamd_util.get_tld(policy.domain)) then
- rspamd_logger.infox(task, 'DMARC reporting suppressed for %s', policy.domain)
+ rspamd_logger.info(task, 'DMARC reporting suppressed for sender domain %s', policy.domain)
+ return
+ end
+ end
+ if settings.reporting.exclude_recipients then
+ local rcpt = task:get_principal_recipient()
+ if rcpt and settings.reporting.exclude_recipients:get_key(rcpt) then
+ rspamd_logger.info(task, 'DMARC reporting suppressed for recipient %s', rcpt)
return
end
end
@@ -515,6 +522,11 @@ if type(settings.reporting) == 'table' then
type = 'map',
description = 'Domains not to store DMARC reports about'
},
+ exclude_recipients = {
+ optional = true,
+ type = 'map',
+ description = 'Recipients not to store DMARC reports for'
+ },
})
end