Security
How to Read DMARC Aggregate Reports and Reach p=reject
Use DMARC XML aggregate reports to identify legitimate senders, fix alignment, and move safely from monitoring to quarantine and reject.
In this article
How to Read DMARC Aggregate Reports and Reach p=reject
DMARC aggregate reports summarize how receivers evaluated mail claiming to come from your domain. They group messages by source IP and show SPF, DKIM, alignment, disposition, and volume. The reports do not contain message bodies, but they still reveal sending infrastructure and should be handled as operational data.
The practical model
Treat how to read dmarc aggregate reports and reach p=reject as a system with four review points: start with alignment, normalize the xml into senders, fix before enforcing, raise policy in measured steps. Give each point an owner, a measurable acceptance condition, and a rollback trigger. Thresholds should come from observed workloads, contracts, or risk tolerance rather than an unexplained default.
Start with alignment
DMARC passes when either DKIM or SPF both authenticates and aligns with the visible From domain. SPF can break during forwarding, so aligned DKIM is usually the durable path for important senders. Check the header From domain, DKIM d= domain, envelope sender, and relaxed or strict alignment mode together.
Normalize the XML into senders
Parse report metadata, policy, source IP, count, disposition, evaluated results, and authentication details. Resolve providers cautiously; a shared cloud IP can carry many customers. Group by known service and business owner, not just by IP, and preserve first-seen and last-seen dates.
Fix before enforcing
List every legitimate stream: workforce mail, marketing, invoices, support, monitoring, CRM, and delegated subdomains. Configure provider DKIM using your domain and document return-path behavior. Remove abandoned tools. Investigate forwarded and mailing-list traffic without whitelisting broad infrastructure.
Raise policy in measured steps
After stable monitoring, apply quarantine to a small percentage if supported, watch complaint and delivery signals, then increase. Move to reject only when legitimate sources consistently align. Decide a subdomain policy explicitly and retain a monitored mailbox or processor for aggregate reports.
Common pitfalls
- Counting SPF pass without checking alignment.
- Authorizing a provider only by source IP.
- Publishing reject before inventorying shadow IT.
- Treating every unknown source as malicious without ownership review.
A focused test plan
- Start with alignment: verify that dMARC passes when either DKIM or SPF both authenticates and aligns with the visible From domain. Then introduce the failure case “counting spf pass without checking alignment” and confirm that the system fails visibly, stays within its safety boundary, and has a documented recovery action.
- Normalize the XML into senders: verify that parse report metadata, policy, source IP, count, disposition, evaluated results, and authentication details. Then introduce the failure case “authorizing a provider only by source ip” and confirm that the system fails visibly, stays within its safety boundary, and has a documented recovery action.
- Fix before enforcing: verify that list every legitimate stream: workforce mail, marketing, invoices, support, monitoring, CRM, and delegated subdomains. Then introduce the failure case “publishing reject before inventorying shadow it” and confirm that the system fails visibly, stays within its safety boundary, and has a documented recovery action.
- Raise policy in measured steps: verify that after stable monitoring, apply quarantine to a small percentage if supported, watch complaint and delivery signals, then increase. Then introduce the failure case “treating every unknown source as malicious without ownership review” and confirm that the system fails visibly, stays within its safety boundary, and has a documented recovery action.
Primary references
Conclusion
DMARC enforcement is an inventory and alignment project. Convert reports into owned sending streams, make aligned DKIM the default, remove unknown services, and tighten policy with measured evidence.