Nova Uptime
Free Tool

Free DMARC Record Checker

Validate your domain's DMARC record for free — no sign-up required. Check policy strength, reporting configuration, and get fix recommendations.

DMARC Policy Progression

1

Monitor

p=none

Collect reports without affecting delivery. Monitor for 2+ weeks.

2

Partial Quarantine

p=quarantine; pct=25

Quarantine 25% of failing emails. Watch reports for false positives.

3

Full Quarantine

p=quarantine; pct=100

All failing emails go to spam. Confirm legitimate senders pass.

4

Reject

p=reject

Block all unauthorized emails. Maximum protection against phishing.

What is DMARC and Why It Matters in 2026

DMARC — Domain-based Message Authentication, Reporting & Conformance — is the policy layer that ties SPF and DKIM together. SPF tells receiving servers which IPs are allowed to send mail for your domain. DKIM cryptographically signs each message so recipients can verify it wasn't tampered with. DMARC is the instruction manual: it tells Gmail, Outlook, Yahoo, and every other inbox provider what to do when a message claiming to come from your domain fails one or both of those checks. Without DMARC, attackers can spoof your From address and ride your reputation straight into customer inboxes.

In 2026 this is no longer optional. Since February 2024 — and tightened steadily through 2025 and 2026 — Gmail and Yahoo require any sender pushing more than 5,000 messages per day to have a valid DMARC record. Microsoft 365 has followed with its own enforcement for high-volume senders. Domains without DMARC see bulk mail bounced or routed straight to spam, and brand-impersonation phishing rates roughly double when DMARC is missing.

Anatomy of a DMARC Record

A DMARC record is a single TXT record published at _dmarc.yourdomain.com. It is a semicolon-delimited list of tags. Here is a typical record and what each piece does:

v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com; pct=100; aspf=r; adkim=r;
  • v=DMARC1Required version tag. Must be exactly DMARC1 (case-sensitive) or the entire record is ignored.
  • p=The policy itself. p=none means monitor only — failures still get delivered. p=quarantine sends failing mail to the spam folder. p=reject blocks it outright at the SMTP boundary.
  • rua=Aggregate report mailbox. Receivers send daily XML reports here summarising which IPs sent mail using your domain and how many messages passed or failed. Format: rua=mailto:dmarc-reports@yourdomain.com.
  • ruf=Forensic (failure) report mailbox. Per-message failure samples with headers and sometimes redacted body. Most providers no longer send these for privacy reasons, so rua is far more useful in practice.
  • pct=Percentage of failing mail to apply the policy to (1–100). Lets you stage rollouts: pct=25 with p=quarantine quarantines a quarter of failures while leaving 75% delivered.
  • aspf= / adkim=Alignment mode. aspf=s/r and adkim=s/r control whether SPF/DKIM domain matching is strict (exact match) or relaxed (subdomain allowed). Default is relaxed, which is what almost everyone wants.

5 Common DMARC Errors and How to Fix Them

Error: No DMARC record found

The most common failure mode. Run dig TXT _dmarc.yourdomain.com — if it returns nothing, the record is missing. Check three things: (1) you published the TXT record on _dmarc as a subdomain, not on the root domain; (2) the host field is exactly _dmarc with a leading underscore (some DNS UIs strip it); (3) you waited for propagation. TTL is typically 300–3600 seconds, but Cloudflare and Route53 are usually live within a minute. Avoid uppercase _DMARC — DNS labels are case-insensitive but some validators are strict.

Error: Multiple DMARC records

If two or more TXT records exist on _dmarc, RFC 7489 requires receivers to ignore all of them — your domain falls back to no policy. This often happens when a marketing tool or migration script publishes a second record without removing the first. Run dig +short TXT _dmarc.yourdomain.com — if you see more than one v=DMARC1 line, delete the older or weaker one. Consolidate everything into a single record with all the tags you need (p, rua, ruf, pct, aspf, adkim).

Error: Invalid syntax

DMARC parsers are strict. The five most common syntax errors: (1) missing semicolons between tags — every tag pair must end with ;; (2) using = signs in mailto URIs without proper encoding; (3) using smart-quotes copy-pasted from a Word doc instead of straight ASCII quotes; (4) typos like p=quarentine or p=rejct; (5) wrapping the whole record in extra quotes when the DNS UI already adds them. Validate with our checker above — it parses tag-by-tag and tells you exactly which token failed.

Error: SPF/DKIM alignment failures

DMARC passes only when at least one of SPF or DKIM both authenticates and aligns with the From domain. A common gotcha: your ESP (e.g. Mailchimp) authenticates with its own return-path like bounces.mcsv.net, so SPF passes but doesn't align with yourdomain.com. Fix by enabling DKIM signing with your domain on the ESP — DKIM alignment is easier than SPF alignment because the d= tag in the DKIM signature can match your root domain. For subdomains, set aspf=r and adkim=r (relaxed, the default) so subdomain mail aligns with the root.

5-Step DMARC Setup Walkthrough

  1. Audit current authenticationBefore you publish DMARC, fix SPF and DKIM. Run our SPF Checker and DKIM Checker on every sending domain and subdomain. Confirm SPF is under the 10-DNS-lookup limit and ends in -all or ~all. Confirm DKIM is signing with a 2048-bit key and aligned with your From domain.
  2. Publish a monitoring record (p=none)Add this TXT record at host _dmarc: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; pct=100; aspf=r; adkim=r. p=none means no impact on mail flow — receivers will start sending you aggregate reports without quarantining or rejecting anything. This is your data-collection phase. Use a dedicated mailbox or a DMARC analyser tool because raw XML is unreadable at scale.
  3. Collect aggregate reportsWithin 24 hours you should start receiving daily XML reports from major receivers. Parse them to identify every IP and platform sending mail as your domain. Expected senders (Google Workspace, Mailchimp, SendGrid) should pass. Unexpected ones are either shadow IT or spoofers — investigate before you tighten the policy.
  4. Move to quarantine with pct=25Once 95%+ of legitimate mail is passing both SPF and DKIM with alignment, tighten to v=DMARC1; p=quarantine; pct=25; rua=...;. Now 25% of failing mail goes to spam. Watch reports and helpdesk tickets for false positives. After two clean weeks, raise pct to 50, then 100.
  5. Reach p=rejectFinal state: v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com; pct=100;. Failing mail is bounced at the SMTP boundary — phishers can no longer spoof your domain. This is the only configuration that fully protects your brand. Most domains reach reject within 8 weeks of starting at p=none.

DMARC Rollout Phases (4 to 8 Weeks)

A safe DMARC rollout follows a percentage-based ramp so you can catch misconfigurations before they hurt deliverability. The minimum viable timeline is four weeks; eight is safer for organisations with many sending platforms.

  • Week 1-2: Monitor (p=none)Publish p=none with rua= reporting. Collect aggregate reports, identify every legitimate sender, and fix SPF/DKIM gaps. Expect to discover at least one shadow ESP nobody told IT about.
  • Week 3-4: Quarantine pct=25Switch to p=quarantine; pct=25. A quarter of unauthenticated mail now lands in spam. Monitor reports daily for unexpected drops in legitimate mail. If a sender breaks, roll back to p=none, fix it, retry.
  • Week 5-6: Quarantine pct=100Raise to p=quarantine; pct=100. All failing mail goes to spam. By this point your reports should show 99%+ pass rates from known senders. Spoofed mail attempting your domain is now neutralised at the recipient inbox.
  • Week 7-8: RejectMove to p=reject; pct=100. Failing mail is bounced at the SMTP transaction — never reaches the recipient at all. This is the destination state. Keep reporting on (rua=) so you spot regressions when a new ESP is added.

Gmail and Yahoo 2026 Requirements

If you send more than 5,000 messages per day to Gmail or Yahoo addresses, DMARC is mandatory. The minimum acceptable record is p=none — but Google's own guidance now recommends p=quarantine or stronger. Without a valid DMARC record, bulk senders see messages bounce with 5.7.26 'unauthenticated email is not accepted' or get routed straight to spam regardless of content. The other 2026 requirements stack on top: one-click unsubscribe in headers, spam-complaint rates under 0.3%, and TLS for SMTP. DMARC is the cheapest of these to implement — typically a single TXT record and 30 minutes of work — and it is the single biggest deliverability lever for transactional and marketing mail.

DMARC FAQ

What is DMARC?
DMARC (Domain-based Message Authentication, Reporting & Conformance) is an email authentication policy that builds on SPF and DKIM. It tells receiving servers what to do when emails fail authentication — monitor (none), quarantine, or reject them.
What do the DMARC policies mean?
Policy "none" means monitor only (no action on failures). "Quarantine" sends failing emails to spam. "Reject" blocks them entirely. Start with "none" to monitor, then gradually increase to "reject" after confirming legitimate emails pass.
What is DMARC alignment?
DMARC alignment checks that the domain in the From header matches the domains used in SPF and DKIM. "Relaxed" alignment (aspf=r, adkim=r) allows subdomains; "strict" (aspf=s, adkim=s) requires exact matches.
What are DMARC aggregate reports (rua)?
The rua tag specifies where to send daily aggregate XML reports showing who's sending email using your domain, pass/fail rates, and source IPs. Set it to "mailto:dmarc@yourdomain.com" to receive these reports.
How long does DMARC take to work?
DMARC records propagate via DNS (1-48 hours). However, the full rollout to "reject" policy should take 4-8 weeks: start with p=none to collect data, then move to p=quarantine with pct=25, increase percentage, and finally switch to p=reject.
Can I use DMARC with multiple sending services (e.g., Mailchimp + SendGrid + transactional)?
Yes — and most domains do. DMARC doesn't care how many platforms send for you, only that each one passes either SPF or DKIM with domain alignment. Configure custom DKIM signing for each ESP using their domain-authentication setup (Mailchimp, SendGrid, Postmark, Amazon SES all support it). For SPF, include each ESP's mechanism in your record but watch the 10-DNS-lookup limit — flatten with a tool if you exceed it. Then verify in your aggregate reports that every legitimate sender shows up as DMARC-aligned before tightening to reject.
What's the difference between rua and ruf reports?
rua (aggregate) reports are daily XML summaries: which IPs sent mail, how many messages, pass/fail counts. They contain no message content and are safe for any inbox. ruf (forensic/failure) reports are per-message samples with headers and sometimes redacted body — useful for incident response but rarely sent today because of GDPR concerns. Set rua=, skip ruf= unless you have a specific need.
How do I verify my DMARC is working before going to reject?
Three checks. First, the checker above must show a valid record with no syntax errors. Second, your aggregate reports must show 99%+ DMARC pass rate from every legitimate sender for at least two weeks at p=quarantine; pct=100. Third, send test mail from each of your platforms to a Gmail address and inspect the headers — Authentication-Results should show dmarc=pass for both spf and dkim alignment. If any of the three checks fail, fix the underlying SPF or DKIM gap before progressing the policy. Going to reject with broken alignment will bounce real mail.
Can subdomains use a different DMARC policy?
Yes. The sp= tag (subdomain policy) lets you set a different policy for subdomains. Example: v=DMARC1; p=reject; sp=quarantine; rua=...; rejects mail spoofing yourdomain.com but only quarantines mail spoofing arbitrary subdomains. Useful when you don't yet know which subdomains send legitimate mail. For tighter security, set sp=reject as soon as you've inventoried subdomain senders.
Will DMARC affect legitimate email forwarding (e.g., aliases)?
It can. When mail is forwarded — say from contact@yourdomain.com to a personal Gmail — SPF breaks because the forwarding server is not in your SPF record. DKIM usually survives because the signature travels with the message, but mailing lists that modify subjects or footers can also break DKIM. The fix is ARC (Authenticated Received Chain), which most major providers (Gmail, Outlook, Office 365) now implement automatically. Forwarders that support ARC preserve the original authentication result. Aliases set up inside Gmail or Microsoft 365 are unaffected because they use ARC by default.

Monitor Your DMARC Record 24/7

Get instant alerts if your DMARC record changes, breaks, or is removed.

Start Free Monitoring