diff options
author | Andrew Lewis <nerf@judo.za.org> | 2024-09-18 12:57:49 +0200 |
---|---|---|
committer | Andrew Lewis <nerf@judo.za.org> | 2024-09-18 12:57:49 +0200 |
commit | 6540c486723618de1af662f0b1bb1b8f108fa7a6 (patch) | |
tree | 4b6e70a6abd555a37cb87748eb1be82a3ce918b1 /src | |
parent | 986814257147e9e79df032f5f157d90c0ee430e4 (diff) | |
download | rspamd-6540c486723618de1af662f0b1bb1b8f108fa7a6.tar.gz rspamd-6540c486723618de1af662f0b1bb1b8f108fa7a6.zip |
[Feature] DMARC: Implement reporting.only_domains setting
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/lua/dmarc.lua | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/plugins/lua/dmarc.lua b/src/plugins/lua/dmarc.lua index 792672bd0..28b3db867 100644 --- a/src/plugins/lua/dmarc.lua +++ b/src/plugins/lua/dmarc.lua @@ -264,6 +264,13 @@ local function dmarc_validate_policy(task, policy, hdrfromdom, dmarc_esld) end if policy.rua and redis_params and settings.reporting.enabled then + if settings.reporting.only_domains then + if not (settings.reporting.only_domains:get_key(policy.domain) or + settings.reporting.only_domains:get_key(rspamd_util.get_tld(policy.domain))) then + rspamd_logger.info(task, 'DMARC reporting suppressed for sender domain %s', policy.domain) + return + end + end 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 @@ -527,6 +534,11 @@ if type(settings.reporting) == 'table' then type = 'map', description = 'Recipients not to store DMARC reports for' }, + only_domains = { + optional = true, + type = 'map', + description = 'Domains to store DMARC reports about' + }, }) end |