How to Read a DMARC Report: A Plain-English Guide
Once you set up DMARC with a reporting address, XML files start arriving in your inbox. They look like raw code and contain data you've probably never seen before. Here's how to decode them — and what to actually do with what you find.
What is a DMARC report?
When you add rua=mailto:dmarc@yourdomain.com to your DMARC record, major email providers (Gmail, Yahoo, Microsoft, and others) start sending you daily XML reports summarising every email they received that claimed to be from your domain.
These are called aggregate reports (RUA). There are alsoforensic reports (RUF) — individual failure reports — but aggregate reports are the most useful for day-to-day monitoring and are supported by all major providers.
Each report covers a 24-hour period and tells you:
- Which IP addresses sent email claiming to be from your domain
- How many messages were sent from each IP
- Whether SPF and DKIM passed or failed for each sending source
- What DMARC policy action was taken (none, quarantine, reject)
What the XML actually contains
The raw XML has several sections. Here's what each key section means:
Report metadata
The top of the report identifies who sent it, your domain, and the time period covered. You'll see the sending organisation (e.g., google.com or yahoo.com), a report ID, and timestamps for the start and end of the reporting period (in Unix time — you can convert with any online Unix timestamp converter).
Policy published
This confirms what DMARC policy the reporting organisation saw on your domain during the reporting period. It's a useful sanity check — if this doesn't match what you set, your DNS changes may not have propagated or a typo crept in.
p— Your current policy: none, quarantine, or rejectpct— The percentage of mail the policy applies to (default 100)adkim— DKIM alignment mode (r=relaxed, s=strict)aspf— SPF alignment mode (r=relaxed, s=strict)
Record (the most important section)
Each <record> block represents a distinct sending source — a unique combination of sending IP, SPF result, and DKIM result. A single report might have one record or dozens, depending on how many sources sent email claiming your domain.
Within each record, the key fields are:
- Source IP — The server that sent the email. This is how you discover unauthorised senders using your domain.
- Count — How many emails came from this IP during the period.
- Disposition — What the receiving server did:
none(delivered),quarantine(spam), orreject(blocked). - SPF result —
passorfail, and whether it aligned with the From domain. - DKIM result —
passorfail, and the selector and domain used. - Overall DMARC result —
passif either SPF or DKIM passed with alignment,failotherwise.
How to read the report without XML expertise
Most people don't want to read raw XML. Several free and paid tools convert DMARC reports into human-readable dashboards:
- Dmarcian — Popular DMARC monitoring service with a free tier
- DMARC Analyzer — Provides visualisations and policy recommendations
- Postmark's DMARC Report Tool — Free tool at dmarc.postmarkapp.com that parses single reports
- Google Postmaster Tools — Shows authentication pass rates for Gmail specifically
These tools transform the XML into charts showing pass/fail rates by sender IP, authentication method, and time period. Even the free tiers of most services are adequate for small business monitoring.
What to look for in your reports
Unexpected sending IPs
The most valuable thing DMARC reports reveal is email being sent from IP addresses you don't recognise. These fall into two categories:
- Legitimate senders you forgot to add to SPF — A CRM, invoicing tool, or help desk system sending on your behalf. Add the relevant include to your SPF record.
- Phishing or spoofing attempts — Someone trying to impersonate your domain. If these emails are failing authentication, your DMARC policy is working. Consider upgrading from
p=nonetop=quarantineorp=rejectto block them.
DKIM failures from known sources
If you see a known sending service (e.g. Mailchimp) with DKIM failures, you likely haven't completed the DKIM setup for that service — or the DKIM key has expired. Log in to that service's admin panel and regenerate the DKIM setup.
SPF alignment failures despite SPF passing
DMARC requires alignment, not just a pass. If SPF passes but the domain in the SPF result doesn't match the domain in the From header, it still counts as a DMARC failure. This is common when using third-party sending services that authenticate on their own domain unless you configure custom DKIM on your domain.
When to upgrade your DMARC policy
Use this simple decision process:
- After 1–2 weeks of
p=none: check reports for unexpected senders and fix any legitimate ones - Once all legitimate mail sources are authenticating: upgrade to
p=quarantine - After another 2 weeks with no issues: upgrade to
p=reject
A p=reject policy is the strongest protection against domain spoofing and signals to Gmail that you take your domain's email security seriously.
Check if DMARC is set up correctly
InboxShield Mini checks your DMARC record, policy level, and alignment in real-time. Free scan — no account required.
Run free scan