TrekMail TrekMail
Deliverability & DNS

DMARC Reports: How to Read, Fix, and Enforce

By Alexey Bulygin
DMARC Reports: How to Read, Fix, and Enforce

DMARC reports tell you who is sending mail with your domain, whether SPF or DKIM aligned, and what receivers did with that traffic. That makes dmarc reports one of the fastest ways to catch spoofing, find broken vendor setups, and decide when you can safely move from monitoring to enforcement.

Most teams publish a DMARC record, point rua= at a mailbox, then do nothing with the data. Bad move. The XML piles up, legit senders stay misconfigured, and spoofed mail keeps hitting inboxes. If you're still building the basics, start with business email for small business and create email with your domain first. Then come back and use dmarc reports the way operators do: as a working inventory of every sender touching your domain.

The fix is simple in concept. Collect the reports. Identify every real sender. Fix alignment. Ignore forwarding noise when DKIM still passes. Then tighten policy with evidence instead of hope.

What DMARC Reports Actually Are

DMARC reports are feedback messages sent by participating receivers after they evaluate mail claiming to come from your domain. They show authentication results, alignment status, source IPs, and policy actions, which makes them useful for both security and deliverability work.

There are two types of dmarc reports.

Aggregate reports are the important ones. They are usually requested with the rua tag and arrive as XML summaries. They group traffic by receiver, source IP, authentication result, and disposition. This is the data you use to see whether Google Workspace, Microsoft 365, SendGrid, Mailchimp, your app server, or some random VPS is sending as your domain.

Failure reports, usually requested with the ruf tag, are message-level samples of DMARC failures. They sound great. In practice, support is inconsistent, and many major receivers send few or none because of privacy concerns. Build your process around aggregate dmarc reports first. Treat failure reports as extra signal, not the foundation.

If you want the operator version, dmarc reports answer four questions fast:

  1. Who is sending mail with my domain?
  2. Does that mail pass SPF or DKIM in alignment?
  3. Are receivers quarantining or rejecting any of it?
  4. What breaks if I move to p=quarantine or p=reject?

How DMARC Reports Work

DMARC reports work because your DMARC record tells receivers where to send feedback. You publish a TXT record at _dmarc.yourdomain.com, define a policy, and add one or more mailboxes for aggregate or failure reporting. Participating receivers then send the report data back to you.

A basic monitoring record looks like this:

_dmarc.example.com. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com; adkim=s; aspf=s; pct=100"

That tells receivers to evaluate DMARC, keep policy at monitor-only mode, and send aggregate dmarc reports to dmarc@example.com. Strict alignment with adkim=s and aspf=s is optional, but it makes testing clearer when you want exact domain matching instead of relaxed organizational matching.

The tags that matter most are:

  • v=DMARC1: required version tag.
  • p=: policy for mail that fails DMARC.
  • rua=: where aggregate dmarc reports go.
  • ruf=: where failure reports go.
  • pct=: percentage of mail the policy applies to.
  • adkim and aspf: DKIM and SPF alignment mode.

The reporting format and policy logic are defined in RFC 7489. That is why raw dmarc reports usually arrive as zipped XML attachments instead of something humans enjoy reading.

What You See Inside Aggregate DMARC Reports

Aggregate dmarc reports summarize traffic by reporting organization, source IP, message count, SPF result, DKIM result, alignment result, and final policy action. Once you know those fields, the XML stops looking mysterious and starts looking operational.

Each aggregate report usually includes:

  • The receiver that generated the report, such as Google or Microsoft.
  • The date range covered.
  • The source IP that sent the mail.
  • The number of messages seen from that source.
  • Whether SPF passed.
  • Whether DKIM passed.
  • Whether SPF aligned with the visible From domain.
  • Whether DKIM aligned with the visible From domain.
  • The DMARC disposition: none, quarantine, or reject.

Here is the part most weak guides skip: not every SPF failure in dmarc reports is a real problem. Forwarding often breaks SPF because the forwarder changes the sending IP. If DKIM still passes and aligns, DMARC passes.

Receiver: gmail.com
Source IP: 198.51.100.24
Count: 842
Header From: example.com
SPF: fail
DKIM: pass
DMARC: pass
Disposition: none

That pattern is often fine. The signature survived. The message authenticated. Move on.

Receiver: outlook.com
Source IP: 203.0.113.77
Count: 314
Header From: example.com
SPF: fail
DKIM: fail
DMARC: fail
Disposition: quarantine

That pattern is not fine. In dmarc reports, it usually points to one of three things: a real sender is misconfigured, a new vendor was added without proper authentication, or someone is spoofing your domain.

Aggregate vs Failure Reports

Aggregate dmarc reports give you the big picture across all sources and receivers. Failure reports try to show individual failed messages. For most domains, aggregate reporting is the core signal because it is broader, more reliable, and enough to drive safe policy changes.

Report typeRequested withWhat you getBest useReality in 2025-2026
Aggregaterua=mailto:...Daily XML summaries by source, auth result, and dispositionInventory, alignment fixes, policy rolloutThe main data set most teams actually use
Failure / forensicruf=mailto:...Per-message failure details, often partial or redactedInvestigating specific failures or abuseSpotty support. Many large receivers send few or none

If a vendor sells dashboards but cannot explain the difference, skip them. Dmarc reports are useful only when they help you change sending behavior.

How to Read DMARC Reports Without Wasting a Week

The fastest way to read dmarc reports is to classify high-volume sources first, map each source to a real business system, and fix legitimate failures before you chase edge cases. Coverage beats perfection at the start.

Use this workflow:

  1. Start with the highest-volume sources in your aggregate dmarc reports.
  2. Map each source to a system: Google Workspace, Microsoft 365, a marketing platform, your app, your help desk, or something unknown.
  3. Check whether each source passes either SPF or DKIM in alignment with the visible From domain.
  4. Fix legitimate failures before changing policy.
  5. Mark unknown sources as suspicious until you can prove they belong.

When teams get stuck in dmarc reports, they usually focus on tiny low-volume failures before fixing the senders that account for most of the mail. That is backwards.

What the report showsLikely causeWhat to do
SPF pass, DKIM pass, DMARC passHealthy senderDocument it and leave it alone
SPF fail, DKIM pass, DMARC passForwarding or SPF path issueUsually acceptable; verify DKIM survives consistently
SPF pass, DKIM fail, DMARC passDKIM signing issue but SPF alignedFix DKIM before moving to stricter policy
SPF fail, DKIM fail, DMARC failSpoofing or broken vendor setupInvestigate immediately
Unknown IP with real volumeShadow IT or abuseIdentify the sender or block it

The fixes coming out of dmarc reports are usually boring and concrete:

  • Add the correct SPF include for a legitimate sender.
  • Enable DKIM signing in the vendor dashboard.
  • Set up a custom return-path so SPF alignment works.
  • Move a vendor to a subdomain if you do not want it using the root domain.
  • Rebuild broken forwarding instead of pretending SPF alone will hold.

A quick command-line check helps verify what receivers are seeing:

dig TXT _dmarc.example.com +short
dig TXT example.com +short
dig TXT selector1._domainkey.example.com +short

If the DNS side still looks messy, use TrekMail's docs for required DNS records and why email goes to spam before you overthink the XML.

The Common Problems DMARC Reports Expose

Dmarc reports surface the same failures over and over: missing vendor authentication, SPF and DKIM alignment mistakes, forwarding damage, and unused policy settings. That is why they are so good at exposing operational debt fast.

The first problem is missing vendor authentication. A team adds a tool, starts sending as your domain, and never finishes SPF or DKIM. Your dmarc reports then show a sending IP you do not recognize.

The second problem is alignment failure. SPF can pass for the envelope domain while DMARC still fails because the visible From domain does not align. That is common with marketing platforms and ticketing systems that were never set up with a custom bounce domain.

The third problem is over-trusting SPF. Forwarding breaks SPF all the time. If DKIM is weak or absent, your dmarc reports get noisy and your deliverability gets worse. If forwarding is part of your setup, read email forwarding setup and fixes and stop treating forwarded mail like direct mail.

The fourth problem is theater. Teams publish p=none, collect dmarc reports, and never review them. That gives you the appearance of control with none of the benefit.

The fifth problem is rushing to p=reject. Dmarc reports help before enforcement, not after the outage. If you have not mapped every legit sender, the policy is not your problem. Your process is.

Where TrekMail Fits

Dmarc reports are only useful if you can act on what they show. TrekMail helps by reducing the number of dashboards, DNS panels, and sender sprawl you have to manage before you can fix alignment and move toward enforcement.

Old way: manage multiple domains across random hosts, bolt on separate SMTP services, parse dmarc reports in a shared mailbox, and hope nobody added a new sender without telling you.

New way: use one TrekMail dashboard for multi-domain email hosting, run the SPF/DKIM/DMARC wizard, validate DNS health, choose BYO SMTP or managed SMTP, and keep mailbox operations, forwarding, and migration in one place. If you manage several client environments, multi domain email hosting is where this starts paying off.

TrekMail keeps the operating model simple: custom domains, IMAP mailboxes, catch-all, mailbox forwarding, built-in server-side IMAP migration, API access on higher plans, and standards-first DNS setup. On the Nano plan you can bring your own SMTP using docs for custom SMTP. Paid plans can use TrekMail managed SMTP. Starter starts at $3.50 per month. The Nano plan stays free and needs no credit card. If you want paid features first, there is a 14-day free trial with a credit card required.

That matters because dmarc reports do not fix anything on their own. They just tell you where the mess is. TrekMail makes the cleanup less manual.

When to Move From p=none to Quarantine or Reject

Dmarc reports tell you when enforcement is safe by showing whether all legitimate senders authenticate in alignment. Once the remaining failures are clearly malicious, stale, or irrelevant, you can move policy from monitoring to quarantine and then reject.

A practical rollout looks like this:

_dmarc.example.com. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
_dmarc.example.com. 3600 IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; pct=25"
_dmarc.example.com. 3600 IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com; pct=100"

You do not need to stay in tiny percentage rollouts forever. But you do need evidence from dmarc reports. Review at least a few reporting cycles, confirm that every business-critical sender passes in alignment, and make sure forwarded mail still has DKIM that survives the hop.

Google's current sender guidance is blunt: publish DMARC, authenticate with both SPF and DKIM, and align at least one of them with the visible From domain for direct mail to Gmail. Read the Gmail sender guidelines FAQ if you want the receiver-side view.

Conclusion: Use DMARC Reports as an Operating Tool

Dmarc reports are not there to impress auditors. They are there to show you what is actually sending as your domain, what passes, what fails, and what you need to fix before a receiver forces the issue for you. That is why dmarc reports belong in the weekly operating routine, not in a mailbox nobody opens.

If your environment spans too many domains, too many vendors, and too many DNS panels, simplify first. TrekMail gives you a cleaner path with flat-rate multi-domain email hosting, pooled storage, built-in IMAP migration, BYO SMTP or managed SMTP, and authentication tooling that makes dmarc reports easier to act on. Start free or see TrekMail pricing if you want managed SMTP and a faster path to enforcement.

Share this article

We use cookies for essential functionality. No ads, no ad tracking.

or
or

Reset email sent

If an account exists for this email, we've sent password reset instructions.

By continuing, you agree to TrekMail's Terms and Privacy Policy.