DMARC aggregate report reader
Read one day of DMARC aggregate XML, classify every sending source, and decide whether the domain can move from p=none to p=reject yet.
Goal
contoso.example published DMARC at p=none three months ago to collect reports before enforcing. This is one day’s aggregate report from a large mailbox provider.
Read the XML or the parsed rows, and classify every sending source. The team wants to move to p=reject, so the question is which mail is really yours and what breaks if you enforce today.
| Source | Messages | SPF (domain) | DKIM (d=) | DMARC | Your classification |
|---|---|---|---|---|---|
198.51.100.10mail-outbound-1.protection.example · From: contoso.example | 4,210 | pass contoso.examplealigned | pass contoso.examplealigned | pass | |
203.0.113.25o1.mailer.esp.example · From: news.contoso.example | 1,880 | pass bounce.esp.examplenot aligned | pass contoso.examplealigned | pass | |
192.0.2.44lists.university.example · From: contoso.example | 37 | pass lists.university.examplenot aligned | fail contoso.examplenot aligned | fail | |
198.51.100.77out.hr-saas.example · From: contoso.example | 312 | pass hr-saas.examplenot aligned | pass hr-saas.examplenot aligned | fail | |
203.0.113.140no PTR record · From: contoso.example | 95 | fail contoso.examplenot aligned | no signature | fail | |
192.0.2.201host-201.dsl.isp.example · From: contoso.example | 12 | softfail invoice-portal.examplenot aligned | fail invoice-portal.examplenot aligned | fail |
0 of 6 classified.
Steps
01Classify all six sources in the report.
Do this in the workbench above. This step completes itself when the condition is met.
02How many messages failed DMARC in this report?
03The newsletter ESP’s SPF passed for bounce.esp.example, not contoso.example. Why does DMARC still pass?
04Can contoso.example move to p=reject today?
05The university list adds a footer, breaking DKIM. What is the reasonable response?