Skip to content

feat: add NoReportsList to suppress report delivery to known-bad destinations#394

Merged
thegushi merged 1 commit into
trusteddomainproject:developfrom
thegushi:feat/no-reports-list
May 30, 2026
Merged

feat: add NoReportsList to suppress report delivery to known-bad destinations#394
thegushi merged 1 commit into
trusteddomainproject:developfrom
thegushi:feat/no-reports-list

Conversation

@thegushi
Copy link
Copy Markdown
Collaborator

Closes #319.

What it does

Adds a NoReportsList config option pointing to a file of email addresses and/or domains to which reports should never be delivered, regardless of what the DMARC policy record requests.

Use case: some rua= and ruf= destinations are persistently dead, rate-limited, or otherwise unable to accept DMARC reports (e.g. a Gmail inbox published as a reporting address for a high-volume sender). There is currently no way to suppress delivery to these destinations short of modifying the database or source code.

File format

One entry per line. Lines beginning with # are comments. An entry may be:

  • A full email address: reports@gmail.com
  • A bare domain: gmail.com (suppresses all addresses at that domain)

Matching is case-insensitive.

Where it applies

  • Milter (opendmarc): failure report (ruf=) delivery is suppressed before the report is constructed
  • opendmarc-reports: aggregate report (rua=) delivery is suppressed before SMTP delivery, alongside the existing stale_skip and db_skip checks

The same file path is used for both, configured via a single NoReportsList directive in opendmarc.conf (or --no-reports-list on the opendmarc-reports command line).

Relationship to IgnoreMailTo (PR #393)

IgnoreMailTo prevents inbound messages to a reporting address from being recorded in the history file — it breaks loops at the source. NoReportsList prevents outbound report delivery to known-bad destinations. Different problem, different fix.

@thegushi thegushi changed the base branch from master to develop May 30, 2026 02:36
@thegushi thegushi closed this May 30, 2026
@thegushi thegushi reopened this May 30, 2026
…inations

Adds a NoReportsList config option pointing to a file of email addresses
and/or domains to which reports should never be sent.  Suppresses both
failure report delivery in the milter (ruf=) and aggregate report delivery
in opendmarc-reports (rua=).  Entries may be full addresses or bare domains;
matching is case-insensitive.

Intended for destinations known to be dead, rate-limiting, or otherwise
unable to accept reports (e.g. a Gmail inbox published as a rua= address).

Closes trusteddomainproject#319
@thegushi thegushi force-pushed the feat/no-reports-list branch from b5999c9 to a69c210 Compare May 30, 2026 02:45
@thegushi thegushi closed this May 30, 2026
@thegushi thegushi reopened this May 30, 2026
@thegushi thegushi merged commit f3a1f85 into trusteddomainproject:develop May 30, 2026
2 checks passed
@stoecker
Copy link
Copy Markdown

##  NoReportsList path
##  	default (none)
##
##  Specifies a file containing email addresses and/or domains to which
##  failure reports (ruf=) should never be delivered.  Each line is one
##  entry; lines beginning with # are comments.  An entry may be a full
##  address (reports@gmail.com) or a bare domain (gmail.com) to suppress
##  all addresses at that domain.  The same file is honoured by
##  opendmarc-reports for aggregate report delivery suppression.

That's unclear.

Domain is xyz.com, ruf=hallo@abc.com

When using the bare domain, is xyz.com correct? The text sounds like abc.com would be the correct choice, but that's something different as it blocks all domains using the same mail domain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add NoReportsList option to suppress report delivery to known-bad destinations

2 participants