Free diagnostic

DMARC checker for policy and reporting publication.

Inspect a domain's DMARC record, effective policy, inheritance, testing mode, and aggregate-reporting configuration.

Publication is the starting point

A DMARC record tells receivers how to handle messages that fail aligned SPF and DKIM. This tool reports the published policy and whether aggregate reporting is configured.

  • p=none collects evidence but does not request enforcement.
  • quarantine and reject should follow sender inventory and alignment review.
  • A valid record does not prove every legitimate sender is aligned.

Move from a record to an operating workflow

Use DMARC monitoring to label sources, inspect alignment volume, identify unknown senders, and plan controlled enforcement.

Diagnostic bridge

A free checker is the first step, not the operating system

Use the checker when the question is publication. Use monitoring when the question is whether real senders align, whether unknown sources remain, and whether enforcement can safely change.

DMARC monitoring

Label sources, inspect SPF/DKIM alignment over time, and plan enforcement.

Monitoring docs

Understand RUA ingestion, source attribution, alerts, and rollout evidence.

Authentication diagnosis

See why raw SPF/DKIM passes can still fail DMARC alignment.

Fundamentals

What is DMARC?

DMARC (Domain-based Message Authentication, Reporting, and Conformance), defined by RFC 9989, lets a domain publish a policy telling receivers how to handle mail that claims to come from it but fails authentication, and where to report what they saw. The policy lives in a public DNS TXT record at _dmarc.<yourdomain> starting with v=DMARC1, which is exactly what this checker reads. DMARC authenticates nothing itself; it builds on SPF and DKIM by adding alignment. A message passes when SPF passes with a Return-Path domain aligned to the visible From domain, or when a valid DKIM signature's d= domain aligns with it; one aligned pass is enough. adkim and aspf set the mode: r (relaxed, the default) lets subdomains match; s (strict) requires exact. DMARC alignment explained has the worked cases. The remaining tags tune behavior. p is the policy for the domain; sp covers existing subdomains, np covers non-existent subdomains, and t=y enables the RFC 9989 testing step. rua lists aggregate-report addresses, while ruf and fo configure optional failure reporting. SPF, DKIM, and DMARC explained covers the three protocols together.

Reading the output

How to read your DMARC checker results

This tool runs the bounded RFC 9989 DNS tree walk and reports the applicable published policy. It is anonymous, rate limited, and retains nothing you submit; no SMTP connection is opened and no mailbox is probed. Every result has a status, evidence, limitations, and an RFC 9989 link.

  • Status: "pass" means a valid enforced quarantine or reject policy applies. "warning" means monitoring/testing mode or partial evidence. "fail" means no valid applicable policy, or ambiguous/invalid records.
  • Records: the full text of every DMARC TXT record found; more than one entry is the duplicate-record error below.
  • Record count: this must be 1 at a policy domain; multiple records are ambiguous and are discarded.
  • Policy: the p= value. none only collects reports; quarantine asks for spam-folder treatment; reject asks for refusal.
  • Subdomain policy: the sp= tag; subdomains inherit p= when it is absent. It matters as much as p= if subdomains like notifications.example.com send mail, or never send at all.
  • Testing: t=y asks receivers to apply one policy level below the declared quarantine or reject policy while the owner validates the rollout.
  • Aggregate reporting: whether rua= is published; without it the record can be valid while no reports arrive.
  • Limitations: a published policy does not prove every legitimate sender is aligned; review reports before enforcing. Paste a real message's headers into the header analyzer to see how it was evaluated.

Troubleshooting

Common DMARC errors and how to fix them

Most DMARC problems come from a small set of patterns. Several show up in this tool's output; the rest surface in the aggregate reports a correct record unlocks.

  • Stuck at p=none for years: when reports show legitimate streams passing aligned authentication, test p=quarantine with t=y, then remove testing mode. Consider reject only when the domain's mail patterns and interoperability risks justify it; see the DMARC rollout guide.
  • Missing rua=: the record parses and this tool shows aggregateReporting as false, but no reports ever arrive. Add an rua=mailto: address pointing at a mailbox that is actually read, or a monitoring address.
  • Record published at the wrong hostname: discovery starts at _dmarc.example.com and can walk toward parent policy domains. A record at the apex, at www, or missing the _dmarc label is invisible. A "fail" usually means no applicable policy was found.
  • Multiple DMARC records: a count above 1 means receivers pick no policy and treat the domain as unprotected. Merge every tag into one record.
  • Legacy pct records: RFC 9989 removed pct because receivers applied intermediate percentages inconsistently. The checker reports a legacy value but the generator no longer emits it.
  • sp= inconsistency: when sp= is absent, subdomains inherit p=. Enforce at the apex while a subdomain sends through an unaligned ESP and its mail breaks; publish sp=none under p=reject and subdomains stay spoofable. Set it deliberately, for example sp=reject when subdomains never send.
  • Enforcement without a sender inventory: jumping to quarantine or reject before labeling every legitimate source breaks real mail. ESPs with their own Return-Path fail SPF alignment, unsigned transactional streams fail both, and forwarded mail fails SPF on arrival. Build the inventory from aggregate reports first; see DMARC aggregate reports and unknown senders.

Providers

Per-provider DMARC notes

DMARC is one standard, but large mailbox providers differ in what they require, how they apply policies, and how reliably they report back.

  • Gmail: since February 2024, bulk senders (5,000+ messages per day to personal Gmail) must publish DMARC alongside SPF and DKIM; p=none satisfies the letter of the requirement. Gmail honors quarantine and reject and is typically the most consistent aggregate reporter; see the bulk sender rules. Gmail also renders BIMI logos only at enforcement; see BIMI explained.
  • Yahoo: Yahoo's requirements match Google's, announced together with the same February 2024 start. Yahoo honors enforcement and sends aggregate reports.
  • Microsoft: historically, Microsoft did not apply DMARC quarantine or reject on inbound consumer mail as the RFC describes; failing messages were often delivered anyway. That has been changing, and since May 2025 Microsoft requires high-volume Outlook.com senders to publish SPF, DKIM, and DMARC. Verify current handling against your own reports rather than assuming textbook behavior.
  • Report-sending behavior: reports arrive as gzipped XML, roughly daily, and only from receivers that send them; silence is not proof of no failures. An rua= address in another domain needs that domain's authorization record under _report._dmarc, or reports are not sent.
  • Forensic reports: most large receivers, Google and Microsoft included, do not send ruf= forensics; they contain personal data. Treat them as optional enrichment, not a primary signal.

Comparison

WillItInbox vs MXToolbox vs dmarcian

All three show a DMARC record, but they are built around different jobs. MXToolbox offers free ad-supported one-off lookups, with paid monitoring from $129 per month. dmarcian is a DMARC-focused paid suite. WillItInbox runs free checks with no login and no domain retention, plus optional DMARC monitoring (see the docs) that turns reports into a labeled sender inventory.

CapabilityWillItInboxMXToolboxdmarcian
DMARC lookupFree, one-off, live DNSFree, one-off, ad-supportedPart of a paid DMARC suite
Effective policy, inheritance, testing, and rua readoutYes, in free checkYes, as record detailYes, within the suite
Login requiredNo for free checksNo for free lookupsAccount-based platform
Submitted-domain retentionNone for public checksVaries by productVaries by product
Aggregate-report monitoringOptional monitoring that builds sender inventoryPaid plans from $129/moCore paid offering

Live diagnostic

Check current evidence

This anonymous tool is rate limited and does not retain submitted input. It reports observable evidence without promising delivery, authentication alignment, or inbox placement.

No SMTP mailbox probing, account lookup, or tenant data is used.

Enter an input to see current evidence, limitations, official references, and the relevant next step.

FAQ

What does p=none actually do?

It asks receivers to take no action on failing mail: messages are delivered normally, and reports still flow to your rua address. A disposition of "none" in a report does not mean the message passed; it means no enforcement was requested. p=none is the correct first stage for collecting evidence, not a destination.

Where should the DMARC record live?

In a TXT record at _dmarc.yourdomain.com, not at the apex. When a subdomain has no record, discovery falls back to the organizational domain's record, and the sp tag governs subdomains. A record anywhere else is never evaluated.

Why am I not receiving DMARC reports?

The usual causes are a missing or mistyped rua tag, a mailbox that is full, filtered, or unread, and an rua address in another domain without the required authorization record under _report._dmarc. Reports also arrive roughly daily and only from receivers that send them, so a quiet inbox proves nothing. Confirm the record and mailbox, then wait several days.

What is the difference between rua and ruf?

rua receives aggregate reports: gzipped XML summaries, typically daily, of volume and pass/fail by source. ruf receives forensic reports: near-real-time copies of individual failing messages. Aggregate data is widely supported and is the foundation of monitoring; forensics are largely deprecated over the personal data they contain, and most large receivers never send them.

Can DMARC pass while SPF fails?

Yes. DMARC needs only one aligned pass: SPF with an aligned Return-Path domain, or DKIM with an aligned d= domain. Forwarded mail is the common case: forwarding breaks SPF, but a DKIM signature survives. A valid DKIM signature on an unrelated domain does not count; alignment is what decides.

How long should I stay at p=none before enforcing?

There is no fixed calendar answer; the reports decide. Stay until every legitimate stream passes aligned authentication, including infrequent senders like monthly invoicing. Then test quarantine with t=y before removing testing mode. General-purpose domains should assess interoperability carefully before considering reject.

Does this DMARC checker store or probe anything?

No. The tool runs live DNS queries and shows the applicable policy with its limitations and an RFC 9989 link. It needs no login, opens no SMTP connection, probes no mailbox, and retains nothing you submit. It reports DNS evidence only; it does not promise enforcement, alignment, or inbox placement.