DMARC record checker

Example result for example.com

TXT at _dmarc.example.com
v=DMARC1; p=none
  • p=none: monitoring only.

    Receivers send you reports but do nothing with mail that fails, so your domain can still be spoofed. It meets the Gmail and Yahoo minimum for bulk senders, and it is the right first step.

    Fix: Read the reports for a few weeks; when your own mail passes, move to p=quarantine, then p=reject.

  • No rua= address: you get no reports.

    Aggregate reports show who sends mail as your domain and whether it passes. Without them you cannot safely move to quarantine or reject.

    Fix: Add rua=mailto:dmarc-reports@example.com (any mailbox you read, or a DMARC report service).

Enter a domain to see its DMARC record, the policy receivers apply to mail that fails, where reports go and whether the report addresses are authorised. If a subdomain has no record of its own, the checker shows the organizational domain's record that applies instead. Each problem comes with its fix.

What DMARC does

DMARC (RFC 7489) ties SPF and DKIM to the address people see in the From line. A message passes DMARC when SPF or DKIM passes and the domain that passed is aligned with the From domain. The domain owner publishes a TXT record at _dmarc.<domain> that tells receivers what to do with mail that fails (nothing, spam folder, or reject) and where to send reports about it.

The tags

TagMeaning
v=DMARC1Required, and must come first
p=Policy for failing mail: none, quarantine or reject (required)
sp=Policy for subdomains (defaults to p=)
rua=Where aggregate reports go (mailto: addresses, comma separated)
ruf=Where failure reports go (few providers send them)
pct=Share of failing mail the policy applies to (default 100)
adkim=, aspf=Alignment: r relaxed (subdomains match, the default) or s strict
fo=When failure reports are generated

The problems this checker finds

From p=none to p=reject

  1. Publish p=none with a rua= address and read the reports for two to four weeks.
  2. For every legitimate source in the reports, make SPF or DKIM pass on your domain (DKIM survives forwarding, so it matters most).
  3. Move to p=quarantine, optionally with pct= raised in steps, and watch the reports.
  4. Move to p=reject once nothing legitimate fails.

An enforced policy (quarantine or reject at 100%) is also what BIMI requires before mail clients show your logo. Build or change the record with our DMARC generator.

Checking email addresses rather than domains? Try our free email checker or see pricing for lists and the API.

Frequently asked questions

Is p=none enough?

It meets the Gmail and Yahoo minimum for bulk senders and gives you reports, but it does not stop anyone from spoofing your domain. Move to p=quarantine and then p=reject once the reports show your own mail passes.

Why do my DMARC reports not arrive?

Check that the record has a rua= mailto address. If that address is on another domain, the other domain must publish an authorisation record at yourdomain._report._dmarc.theirdomain, or receivers drop the reports.

Does a subdomain need its own DMARC record?

No. Without its own record, a subdomain uses the record of its organizational domain, with the sp= policy if one is set.

Updated · Maintained by the email-validation.org team