_dmarc.yourdomain.com. DMARC tells receiving mail servers what to do with messages that fail SPF or DKIM alignment — none (monitor only), quarantine (divert to junk), or reject — and where to send authentication failure reports.
Run a one-off check at spotzee.com/tools/dmarc-lookup — enter any domain, get the enforcement policy, alignment modes, and reporting addresses instantly.
POST /generic/email/dmarc-lookup deducts a small per-call amount from your Spotzee credit balance. See the Spotzee pricing page for live figures.
Why this matters
DMARC is the layer that binds SPF and DKIM authentication to the From header — the address the recipient actually sees. Without it, a sender can pass SPF on a different envelope domain while the visible From is entirely spoofed. Withp=none, you gather reports but do nothing. With p=quarantine or p=reject, you close the door on domain spoofing.
Mailbox providers have sender-authentication requirements for bulk mail. Check current provider guidance before changing policy. For regulated communications, retain the published record and any reports as evidence of your domain-authentication settings.
But most organisations still haven’t finished the rollout. A domain stuck at p=none is doing the monitoring work without getting any protection. A domain at p=quarantine; pct=50 is enforcing policy on half of failing messages. Neither is the destination.
How it works
1
Query the _dmarc. subdomain
The API looks up TXT records at
_dmarc.yourdomain.com, formed from the submitted domain.2
Locate the v=DMARC1 record
The API collects TXT values containing
v=DMARC1. Review the returned raw record and its syntax before relying on it as a valid policy.3
Parse the policy tag
Read
p= in the returned record to identify the requested policy: none, quarantine or reject. The lookup does not validate that the entire record is well formed.4
Read alignment modes
Read
adkim= and aspf= in the returned raw record to inspect alignment settings. The API does not parse or assess these tags for you.5
Surface reporting addresses
Read
rua= and ruf= in the raw record for aggregate and failure-report destinations. The API does not verify that reports are delivered.What to watch for
Check these fields in order. The first failure you find is almost always the most important.- No record exists. No DMARC record means no enforcement and no reporting. Publish
p=none; rua=mailto:dmarc@yourdomain.comas the starting point, then read the aggregate reports before escalating. - Policy is
p=none. Monitoring mode provides zero enforcement. You’ll see failures in reports but messages still reach the inbox. Set a timeline to move top=quarantine. pct=below 100. A partial percentage means only that fraction of failing messages gets the stated policy — the rest are treated asp=none. Useful during rollout, but it must reach 100 before you can claim enforcement.- No
rua=address. Without an aggregate reporting address, you’re flying blind. You can’t tell if your policy change will break legitimate senders, and you can’t see who is spoofing you. Addrua=before raising the policy level. - Subdomain policy unset. If
sp=is absent, subdomains inherit the root policy. That’s usually fine. But if you’re deploying new subdomains for transactional mail, they’ll be subject top=rejectfrom day one — which can surprise a new ESP that hasn’t set up DKIM signing yet. - Strict alignment on a complex setup.
adkim=soraspf=srequires an exact From-header match. If your domain sends via subdomains or multiple ESPs using different signing domains, strict mode will cause false DMARC failures. Check this before tightening.
FAQs
What does a DMARC lookup check?
What does a DMARC lookup check?
A DMARC lookup queries the TXT records at
_dmarc.yourdomain.com and retrieves the v=DMARC1 record. The API returns an exists flag and any matching raw dmarcRecord strings. Read the tags in those strings to assess policy, alignment and reporting. An empty result means the lookup found no matching DMARC record.What does p=none mean in a DMARC record?
What does p=none mean in a DMARC record?
p=none is a monitoring-only policy. Receivers run the DMARC check and generate reports, but take no action — messages that fail authentication still reach the inbox. It’s the safe starting point for rollout, but it provides no spoofing protection. You need to progress to p=quarantine or p=reject for enforcement.What is the difference between rua= and ruf= in DMARC?
What is the difference between rua= and ruf= in DMARC?
rua= is the aggregate reporting address. Receivers send daily XML digests showing which IPs sent mail claiming to be from your domain and whether each passed or failed. ruf= is the forensic reporting address for individual failure reports, sometimes including message headers or body content. Start with rua=. ruf= is optional and not supported by all providers.What happens if a domain has no DMARC record?
What happens if a domain has no DMARC record?
Receivers treat the domain as having
p=none by default. Authentication failures are not enforced and no reports are sent. The domain is effectively unprotected from spoofing. Anyone can send mail with that domain in the From header without triggering a DMARC failure at the receiver.How do I move from p=none to p=reject?
How do I move from p=none to p=reject?
The standard rollout path: publish
p=none with an rua= address, review aggregate reports until you can identify every legitimate sender, add missing senders to SPF or DKIM, move to p=quarantine; pct=10 and raise the percentage gradually, then shift to p=reject once false positives drop to zero. Set the timing from the aggregate reports and your own sending patterns.Where can I learn more about DMARC records?
Where can I learn more about DMARC records?
This guide covers DMARC record syntax and the rollout path in depth. For a broader picture of your domain’s authentication posture, the email health check guide audits SPF, DKIM, DMARC, BIMI, MTA-STS, and blacklist status in one scan. Run both when setting up a new sending domain or diagnosing a deliverability problem.
Try it
Run a one-off DMARC record check at the DMARC lookup tool, or call the Extended API atPOST /generic/email/dmarc-lookup for batch and automated workflows. Both surfaces resolve the same live DNS record.