{
“title”: “How to Read DMARC Reports and Move Safely from None to Reject”,
“content”: “
DMARC is one of those DNS records that many teams add once and then ignore, until a partner complains their invoices are going to spam or your brand shows up in a phishing campaign. The power of DMARC is not just the policy (p=none, quarantine, reject) but the reports it sends back to you. Those reports tell you exactly who is sending email on behalf of your domain, how mailbox providers see those messages, and which flows will break the moment you enforce a strict policy. In this article we’ll walk through how to read both aggregate and forensic DMARC reports and outline a practical, low‑risk path from p=none to p=reject. We’ll keep it concrete with examples you can map to your own shared hosting, VPS or dedicated mail infrastructure at dchost.com, and we’ll focus on what matters for deliverability and security instead of XML trivia.
nnnn
DMARC (Domain-based Message Authentication, Reporting and Conformance) sits on top of SPF and DKIM. It answers three questions for receiving mail servers:
n
- n
- Is the message authenticated by SPF and/or DKIM?
- Does the authenticated domain align with the visible From: domain?
- What does the domain owner want us to do if it doesn’t align?
n
n
n
nn
That last part is the DMARC policy:
n
- n
- p=none – monitor only, no enforcement
- p=quarantine – suspicious messages should go to spam/junk
- p=reject – suspicious messages should be rejected at SMTP
n
n
n
nn
If you are new to SPF, DKIM and DMARC, it’s worth first reading our practical guide explaining SPF, DKIM and DMARC setup on cPanel and VPS. Once your records exist, the real work starts: reading and acting on the DMARC reports. Without that feedback loop, moving straight to p=reject is guesswork and can silently break legitimate email flows.
nn
İçindekiler
- 1 DMARC Policy and Tags: The Pieces Behind the Reports
- 2 Aggregate DMARC Reports (RUA): The High‑Level View
- 3 Forensic DMARC Reports (RUF): Deep Dives on Individual Failures
- 4 A Practical DMARC Report Reading Workflow
- 5 Safe Path from p=none to p=reject
- 6 Hosting‑Side Considerations: DNS, IPs and Infrastructure
- 7 Wrapping Up: DMARC Reports as an Ongoing Feedback Loop
DMARC Policy and Tags: The Pieces Behind the Reports
nn
A DMARC record is a TXT record at _dmarc.yourdomain.com. A typical starting point looks like this:
nn
_dmarc.yourdomain.com. IN TXT "v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; adkim=s; aspf=s"n
nn
Key tags you’ll see referenced in reports:
n
- n
- v – protocol version (
DMARC1) - p – policy for the organizational domain (
none,quarantine,reject) - sp – optional policy for subdomains (defaults to
pwhen omitted) - pct – percentage of messages to which the policy applies (0–100)
- rua – addresses to receive aggregate DMARC reports (RUA)
- ruf – addresses to receive forensic / failure reports (RUF)
- fo – failure reporting options (forensic triggering rules)
- adkim – DKIM alignment mode (
rrelaxed,sstrict) - aspf – SPF alignment mode (
rrelaxed,sstrict)
n
n
n
n
n
n
n
n
n
nn
The important part for report reading is that mailbox providers will send XML files to your rua (aggregate) and sometimes ruf (forensic) addresses. Those XML files contain:
n
- n
- Which IPs sent email using your domain
- How many messages each IP sent within a time window
- SPF, DKIM and DMARC pass/fail and alignment status
- How the receiver treated those messages, based on your policy
n
n
n
n
nn
Think of DMARC as an analytics layer for your outbound email. It’s the email equivalent of web server logs: raw, sometimes ugly, but incredibly powerful once you know where to look. We’ve written before about why proper SPF/DKIM/DMARC and rDNS are essential for staying out of spam; DMARC reports are how you verify that configuration in the real world.
nn
Aggregate DMARC Reports (RUA): The High‑Level View
nn
What Aggregate Reports Look Like
nn
Aggregate reports (often called RUA reports) are XML files typically sent once per day per receiver (e.g. one from each major mailbox provider). They summarize all email claiming to be from your domain during that period.
nn
The main sections inside each XML are:
n
- n
- <report_metadata> – who sent the report, ID, date range
- <policy_published> – the DMARC record the receiver saw (p, sp, pct, adkim, aspf)
- <record> blocks – one per source (IP + sender domain combination) with:
- n
- <row> – message count and DMARC evaluation result
- <identifiers> – the envelope and header domains
- <auth_results> – detailed SPF and DKIM results
n
n
n
n
n
n
n
nn
You don’t have to become an XML expert. In practice you’ll either:
n
- n
- Feed these XML files to a DMARC analysis tool (self‑hosted or third‑party), or
- Convert them with a simple script and open the CSV in a spreadsheet or BI tool
n
n
nn
If you already centralize other logs, you can also push DMARC data into the same stack (for example into an ELK or Loki/Grafana environment similar to the one we describe in our guide on centralized log management across multiple servers).
nn
The Columns That Actually Matter
nn
Regardless of how you view the data, focus on these key fields for each source:
n
- n
- Source IP – where the email actually originated
- Count – how many messages from that source in the report period
- Header From domain – the visible From: your users see
- SPF result & domain – did SPF pass, and which domain?
- DKIM result & domain – did DKIM pass, and which domain?
- DMARC disposition – none, quarantine, reject (how the receiver treated it)
- Alignment – whether SPF and/or DKIM were aligned with the Header From
n
n
n
n
n
n
n
nn
Alignment is the heart of DMARC. A message only passes DMARC if:
n
- n
- At least one of SPF or DKIM passes, and
- The authenticated domain (from SPF or DKIM) aligns with the From: domain according to your
aspfandadkimsettings
n
n
nn
Example: Reading an Aggregate Report Row
nn
Imagine a simplified record in your RUA data:
nn
Source IP: 203.0.113.10nCount: 428nHeader From: yourdomain.comnSPF: pass (smtp.mail.your-marketing-tool.com)nDKIM: pass (news.yourdomain.com)nDMARC: pass (DKIM aligned, SPF not aligned)n
nn
What does this tell you?
n
- n
- A third‑party marketing platform is sending 428 messages using
From: yourdomain.com. - SPF passes but from the vendor’s domain, so it doesn’t align with your domain.
- DKIM passes from
news.yourdomain.comand aligns (assumingadkim=rorswith matching org domain).
n
n
n
nn
In this case, DMARC passes thanks to aligned DKIM. When you move towards p=reject, this flow is safe as long as you keep the DKIM configuration intact. If an engineer disables DKIM for that provider later, DMARC will start failing and reports will show fail for both SPF and DKIM alignment.
nn
Classifying Sources: Legit, Misconfigured, or Malicious
nn
The first big task when you start reading DMARC reports is to group sources into three buckets:
nn
- n
- Legitimate and correctly authenticatedn
- n
- Examples: your main mail server, CRM, helpdesk platform, newsletter provider
- Action: document them and ensure at least one of SPF or DKIM is aligned for each
n
n
n
- Legitimate but misconfiguredn
- n
- Examples: a small SaaS tool sending invoices, a legacy on‑premise system relaying directly with your domain in From:
- Action: either add them to SPF and ensure alignment, or enable DKIM on that sender
n
n
n
- Unknown or maliciousn
- n
- Examples: random IPs in hosting ranges you’ve never used, foreign ISPs
- Action: do nothing on your infrastructure; tightening DMARC will cause these to be quarantined or rejected
n
n
n
n
n
n
nn
Most organizations discover at least one “forgotten” sender this way—maybe a marketing tool or legacy ERP. DMARC reports bring those to light so you can fix them before enforcement.
nn
Spotting Forwarding Problems
nn
Forwarding is a common source of confusion. When a user forwards mail from [email protected] to another mailbox, SPF can break because the forwarder’s IP is not in your SPF record, even though the message is legitimate. This may appear in DMARC reports as:
nn
SPF: fail (not authorized)nDKIM: pass (aligned)nDMARC: pass (DKIM aligned)n
nn
This is normal: DKIM survives forwarding as long as the signature isn’t modified. Where you see SPF failure but DKIM alignment, you usually don’t need to change anything. If you see both SPF and DKIM failing after forwarding, that’s where modern techniques like SRS (Sender Rewriting Scheme) and ARC (Authenticated Received Chain) come into play. We explain these in detail in our guide on how SRS and ARC fix SPF/DMARC breakage during email forwarding.
nn
Forensic DMARC Reports (RUF): Deep Dives on Individual Failures
nn
What Forensic Reports Are and When They Trigger
nn
Forensic (RUF) reports are different: instead of a daily summary, they are near‑real‑time reports about individual messages that failed DMARC. Depending on your fo setting, they may include headers only or parts of the message body (often redacted).
nn
Common fo options:
n
- n
- fo=0 – send reports if both SPF and DKIM fail to produce aligned results
- fo=1 – send reports if either SPF or DKIM shows a failure
- fo=d – send reports if DKIM fails
- fo=s – send reports if SPF fails
n
n
n
n
nn
We generally recommend starting carefully, for example with fo=1 but RUF pointing to a dedicated, access‑controlled mailbox so that sensitive content doesn’t mix into normal email.
nn
Privacy and Compliance Considerations
nn
Because forensic reports can contain snippets of message content or full headers, they may reveal personal data (names, email addresses, sometimes subject lines). That means they should be treated like any other log data under regulations such as GDPR or KVKK. If your legal or compliance team has rules for log retention on hosting and email infrastructure, apply the same thinking to RUF storage:
nn
- n
- Store RUF data in a restricted mailbox or log store
- Set clear retention periods (e.g. 30–90 days)
- Limit access to security/infra staff
n
n
n
nn
If that feels like too much overhead initially, it’s completely fine to skip RUF in your first DMARC phase and rely solely on aggregate reports.
nn
When Forensic Reports Are Actually Useful
nn
Forensic reports shine in three scenarios:
n
- n
- Investigating active abuse – If your brand is being spoofed, RUF samples show how attackers structure their messages and which sending IPs are involved.
- Debugging tricky flows – For rare or edge-case failures, seeing the full headers of a failing message is far more efficient than guessing from aggregates.
- Validating enforcement – After moving to
p=quarantineorp=reject, RUF can confirm that suspicious messages are indeed failing and being handled as intended.
n
n
n
nn
Just don’t rely on RUF volume to understand overall health; aggregate RUA data is the main source of truth for trends and coverage.
nn
A Practical DMARC Report Reading Workflow
nn
Step 1: Turn On Reporting (Without Enforcement)
nn
Start with a DMARC record that enables reporting but doesn’t affect delivery:
nn
v=DMARC1; p=none; rua=mailto:[email protected]; fo=1; adkim=r; aspf=rn
nn
Use a dedicated mailbox for RUA (and optionally RUF) so that DMARC data doesn’t clutter user inboxes. Configure this TXT record via your dchost.com DNS panel or your control panel (cPanel, DirectAdmin, or a DNS zone on your VPS/dedicated server).
nn
Step 2: Let Data Accumulate
nn
Wait at least 1–2 weeks, ideally 30 days, to gather a representative sample—especially if you have low‑volume transactional email like password resets, or irregular campaigns. During this period:
n
- n
- Collect daily RUA XML files from major receivers
- Feed them into your chosen analysis method (tool, script, spreadsheet, SIEM)
n
n
nn
Step 3: Build a Sender Inventory
nn
From the aggregate data, build an inventory:
n
- n
- Group by Header From domain (e.g.
yourdomain.com,news.yourdomain.com) - Within each, group by source IP and sending service
- Label each source as:
- n
- Primary mail infrastructure (your own mail server, MTA on your VPS/dedicated)
- Third‑party platforms (CRM, newsletters, support desk, marketing tools)
- Unknown/malicious
n
n
n
n
n
n
n
nn
Cross‑check this inventory with your internal documentation. Many teams discover an extra tool sending “system notifications” or a legacy device configured with their main domain as From: but no authentication.
nn
Step 4: Fix Misconfigurations Source by Source
nn
For each legitimate sender with DMARC failures:
nn
- n
- If SPF fails or isn’t aligned:n
- n
- Add or correct the sender’s IP/domain in your SPF record (within the 10‑lookup limit)
- Ensure the
Mail From/ envelope domain used by that sender aligns with the Header From domain if you rely on SPF for DMARC alignment - If your SPF record is getting complex, our guide to advanced SPF management without hitting the 10 DNS lookup limit will help keep it maintainable.
n
n
n
n
- If DKIM fails or isn’t aligned:n
- n
- Enable DKIM signing on that platform
- Publish the DKIM public key under the selector they specify
- Make sure the DKIM signing domain (d=) aligns with your From: domain
n
n
n
n
n
n
nn
Re-check DMARC reports after every change. You should see DMARC pass rates increase for those sources within a day or two.
nn
Step 5: Watch Deliverability and Reputation Signals
nn
While tuning DMARC, keep an eye on:
n
- n
- Bounce codes and SMTP errors (especially 550/5.7.x related to policy)
- Open/click rates in your email tools
- Spam complaints and user feedback
n
n
n
nn
Combine DMARC visibility with the deliverability checklist we outlined in our article on keeping your emails out of spam using SPF, DKIM, DMARC and rDNS. If you’re also warming up a new dedicated IP for outbound mail, our guide to dedicated IP warmup and reputation management pairs nicely with DMARC adoption.
nn
Safe Path from p=none to p=reject
nn
Phase 1 – Baseline with p=none (Monitoring Only)
nn
Stay on p=none until:
n
- n
- You have a complete inventory of all legitimate senders
- Each has at least one aligned authentication method (SPF or DKIM)
- Aggregate DMARC reports show a high DMARC pass rate (e.g. >95% of legitimate mail)
n
n
n
nn
At this stage, you may already lower risk from abuse because many mailbox providers start treating aligned DMARC as a positive signal even before you enforce.
nn
Phase 2 – Introduce Quarantine with a Low pct
nn
Once you’re confident, you can start asking receivers to quarantine some failing messages, but not all:
nn
v=DMARC1; p=quarantine; pct=10; rua=mailto:[email protected]; fo=1; adkim=s; aspf=sn
nn
Key points in this step:
n
- n
- p=quarantine tells receivers to treat failing messages as suspicious, usually spam folder.
- pct=10 limits this to 10% of failing messages. This gives you a safety net.
- adkim=s and aspf=s tighten alignment (strict mode). You can keep them relaxed (
r) if you have complex subdomain setups, but strict alignment makes your brand harder to spoof.
n
n
n
nn
Monitor DMARC reports closely for 2–4 weeks:
n
- n
- Did any legitimate flows start failing and being quarantined?
- Are failure sources mostly unknown/malicious?
n
n
nn
If you see legitimate mail failing, go back to Phase 1 troubleshooting: fix SPF/DKIM, then carry on.
nn
Phase 3 – Increase Coverage and Move to Reject
nn
Assuming the small‑percentage quarantine goes smoothly, gradually increase pct to 50, then 100 over several weeks, each time verifying in your reports that legitimate senders remain green.
nn
When you’re ready for full enforcement, update the record:
nn
v=DMARC1; p=reject; pct=100; rua=mailto:[email protected]; fo=1; adkim=s; aspf=sn
nn
Now, receivers are asked to outright reject messages that fail DMARC. Your aggregate reports will still show those attempts, but with disposition=reject. This is where DMARC becomes a strong anti‑spoofing control: it’s extremely difficult for attackers to send mail that appears to be from your domain and passes DMARC unless they compromise a legitimate sending system or private key.
nn
Subdomains and Separate Sending Domains
nn
Many organizations use subdomains or separate domains for different email flows. For example:
n
- n
yourdomain.com– corporate mail and high‑trust communicationnews.yourdomain.com– newsletters and marketingbilling.yourdomain.com– invoices and transactional emails
n
n
n
nn
DMARC lets you set different policies for subdomains using the sp= tag or standalone DMARC records at each subdomain. For high‑risk corporate mail, you might want p=reject on the apex domain, while keeping more flexible policies on marketing subdomains. We discussed the pros and cons of using separate sending domains for transactional vs marketing email in our article on separate domains for transactional and marketing emails; DMARC policies are a key part of that architecture.
nn
BIMI, MTA‑STS and Other Advanced Extras
nn
Once you reach p=quarantine or p=reject, you unlock extra ecosystem features like BIMI (Brand Indicators for Message Identification), which can display your logo next to messages in some providers. You also have a stronger basis to deploy MTA‑STS, TLS‑RPT and even DANE/TLSA for transport‑layer security. We explored these advanced DNS/email settings in our deep dive on MTA‑STS, TLS‑RPT and BIMI for safer email and stronger brands, and in our DMARC‑focused playbook beyond p=none with advanced DMARC and BIMI.
nn
Hosting‑Side Considerations: DNS, IPs and Infrastructure
nn
Where to Manage DMARC DNS
nn
Your DMARC record lives in DNS, so you can manage it wherever your DNS is hosted:
n
- n
- dchost.com nameservers with our domain and hosting services
- The DNS zone inside your cPanel/DirectAdmin account
- A DNS server on your VPS, dedicated or colocated server
n
n
n
nn
Just make sure you have a clear DNS authority model so you’re not editing old or unused zones. If you’re migrating domains or DNS, follow the steps in our guide on transferring a domain without downtime to avoid accidentally losing your DMARC and other TXT records.
nn
nn
DMARC works best when it’s part of a clean overall email posture:
n
- n
- Reverse DNS (PTR) should match your sending hostname; we covered the details in our article on PTR (reverse DNS) records.
- If you send over IPv6, ensure proper SPF, PTR and DMARC alignment there too; see our guide on sending email over IPv6 and deliverability.
- On shared hosting, your IP is shared with other customers; on a VPS or dedicated server with dchost.com, you can control the full email reputation story (SPF, rDNS, DMARC and rate limits) from end to end.
n
n
n
nn
For high‑volume transactional or marketing email, we usually recommend a VPS or dedicated server so you can tune outbound limits and monitor abuse closely, similar to the strategies we outlined in our article on outbound email security and SMTP rate limit management on shared hosting and VPS.
nn
Wrapping Up: DMARC Reports as an Ongoing Feedback Loop
nn
DMARC is not a one‑time DNS change; it’s an ongoing feedback loop between your domain and the world’s mail servers. Aggregate reports show you who is sending on your behalf and how well authenticated those messages are. Forensic reports, when used carefully, help debug tricky failures and investigate abuse. Together, they give you the confidence to move from a monitoring‑only policy (p=none) to enforcement (p=quarantine and ultimately p=reject) without breaking legitimate flows.
nn
At dchost.com, we see DMARC as part of a bigger picture: clean DNS, correct SPF and DKIM, proper reverse DNS, sensible rate limits and a hosting stack—shared, VPS, dedicated or colocation—that you fully understand. If you’re planning a DMARC rollout or tightening your existing policy, our team can help you choose the right hosting architecture for your email, configure DNS records on our platform, and design a staged move from p=none to p=reject that protects your brand without surprises. Start by enabling DMARC reports today, spend a few weeks really reading them, and then we can harden your policy together, one safe step at a time.
n”,
“focus_keyword”: “how to read DMARC reports”,
“meta_description”: “Learn how to read DMARC aggregate and forensic reports and move safely from p=none to p=reject without breaking legitimate email delivery.”,
“faqs”: [
{
“question”: “How often should I review DMARC aggregate reports?”,
“answer”: “In the early stages (when you are still on p=none or starting quarantine), review DMARC aggregate reports at least weekly, and ideally after every significant change to SPF, DKIM or sending infrastructure. Once you have a stable p=reject policy and a high DMARC pass rate, you can move to a monthly review cadence, with alerts for sudden spikes in failures or new unknown sources. Many teams also schedule a quarterly deeper review to catch new third‑party tools that may have started using the domain for email.”
},
{
“question”: “Do I really need DMARC forensic (RUF) reports, or are aggregate reports enough?”,
“answer”: “For most organizations, aggregate (RUA) reports are the primary tool for planning and enforcing DMARC. They give you the big picture: all sources, volumes and pass/fail rates. Forensic (RUF) reports are optional but very helpful when you need to debug specific failures or investigate active abuse. Because RUF may contain message headers or content snippets, they should be handled carefully from a privacy and compliance perspective. A practical approach is to start with RUA only, then enable RUF later for a limited time or for security investigations.”
},
{
“question”: “How long does it take to move safely from p=none to p=reject?”,
“answer”: “For a small or medium environment with a handful of sending systems, a realistic timeline is 1–3 months. Spend the first 2–4 weeks on p=none gathering DMARC data and fixing SPF/DKIM alignment for all legitimate senders. Then introduce p=quarantine with a low pct (10–25%) and watch reports for another 2–4 weeks. If everything remains stable, gradually raise pct to 100% and finally switch to p=reject. Large organizations with many third‑party tools may need longer, but the principle stays the same: don’t advance to the next step until your DMARC reports show a consistently high pass rate for legitimate traffic.”
},
{
“question”: “What should I do if DMARC reports show legitimate email failing?”,
“answer”: “First, identify which system or provider is responsible by looking at the source IP and any identifying hostnames in the DMARC report. Then check whether SPF and/or DKIM are configured for that sender and if the authenticated domains align with your From: domain. Often the fix is to add the sender to your SPF record, enable DKIM signing, or adjust domains so that at least one of SPF or DKIM aligns. After you change settings, monitor DMARC reports over the next few days to confirm the pass rate for that source improves before tightening your policy further.”
},
{
“question”: “Where should I host DMARC and other email-related DNS records?”,
“answer”: “DMARC, SPF and DKIM records should be published wherever your domain’s authoritative DNS is hosted. If your nameservers are at dchost.com, you can manage all TXT records directly in our DNS panel or through your hosting control panel (such as cPanel or DirectAdmin). If you run your own DNS on a VPS, dedicated or colocated server, make sure that zone is truly authoritative and that changes propagate correctly. The key is to avoid split or outdated zones; there should be a single, well‑managed place where your DMARC record lives and from which recipients query your domain’s policy.”
}
]
}
