OneWebDesk

DMARC Record Lookup

Look up the _dmarc TXT record and explain its policy and tags.

DMARC Record Lookup fetches a domain's _dmarc TXT record in real time and explains its policy (p), report addresses (rua/ruf) and alignment (adkim/aspf). Built on top of SPF and DKIM, DMARC is what ultimately blocks email spoofing — the core of protecting your sending domain.

Just enter a domain; _dmarc.<domain> is queried automatically. Whether the policy is none, quarantine or reject makes a big difference to real protection.

Policy (p) levels

  • p=none: no blocking, reports only (monitoring). The first step.
  • p=quarantine: failing mail is quarantined (e.g. to spam).
  • p=reject: failing mail is rejected. Strongest protection.

Key tags

  • rua: address (mailto:) to receive aggregate reports.
  • pct: percentage of mail the policy applies to (for gradual rollout).
  • adkim / aspf: DKIM/SPF alignment mode (r = relaxed, s = strict).

To create a new DMARC record or tighten an existing policy, build a correct TXT value with DMARC Record Generator, and review your domain's overall authentication with Email Deliverability Check.

Full tag reference

TagMeaningAllowed values / default
vVersion. Must be the first tag (required)always DMARC1
pPolicy for the org domain (required). Must come right after vnone / quarantine / reject
spPolicy for subdomains onlyinherits p if omitted
pctPercentage of mail the policy applies to (gradual rollout)0100 / default 100
adkimDKIM alignment moder (relaxed, default) / s (strict)
aspfSPF alignment moder (relaxed, default) / s (strict)
ruaAddress for aggregate reportsmailto: URI, comma-separated for multiple
rufAddress for failure (forensic) reports. Most receivers don't send thesemailto: URI
foWhen to generate failure reports0 (both fail, default) / 1 (either fails) / d / s
riAggregate report interval (seconds)default 86400 (24h)
rfFailure report formatafrf (default)

Reading a real record

Walking through this record line by line:

v=DMARC1; p=quarantine; sp=reject; pct=50; adkim=s; aspf=r; rua=mailto:dmarc@example.com; ruf=mailto:forensic@example.com; fo=1

  • p=quarantine; pct=50 → of the org domain's failing mail, only half (50%) is quarantined; the other half passes through as if p=none. A clear sign of a rollout in progress.
  • sp=reject → subdomains are rejected with no exceptions. Subdomains are protected more strictly than the main domain here.
  • adkim=s → the DKIM signing domain (d=) must exactly match the From header domain to pass alignment (no subdomain leeway).
  • aspf=r → SPF passes alignment at the organizational-domain level (so mail.example.com still aligns with example.com).
  • fo=1 → generate a failure report if either SPF or DKIM fails (the default 0 requires both to fail).

Common pitfall

  • Trusting the policy alone. Even with p=reject, legitimate mail gets rejected if SPF/DKIM aren't aligned. DMARC doesn't just check whether SPF/DKIM "passed" — it checks that the authenticated domain matches the From header domain.
  • Misreading pct as policy strength. pct=50; p=reject doesn't mean "reject 50%". It applies reject to 50% and downgrades the rest to quarantine — not none.
  • Sending rua to another domain without authorization. To receive reports at an address on a different domain, that domain needs an external-authorization record such as example.com._report._dmarc.reportdomain TXT "v=DMARC1".

Frequently asked questions

Is DMARC alone enough?
No. DMARC builds on SPF and DKIM results. Those must be set up correctly first for DMARC to work meaningfully.
Does p=none protect me?
It does not block anything. It's a monitoring stage; after stabilizing you should move to quarantine, then reject.
I don't see a record.
There may be no _dmarc record, or it hasn't propagated. Results are briefly cached and queried via a public resolver.
Are subdomains protected?
The sp tag sets a separate subdomain policy. Without it, the p policy also applies to subdomains.

Related guides

Related tools

Email