DMARC Checker & Validator
Protect your clients from domain spoofing and email impersonation. Our AI-driven engine provides instant DMARC validation and deep protocol analysis for MSP-level efficiency.
Free DMARC checker — works on any domain.
Analyzing domain posture...
Invalid Domain Input
DMARC Record Analysis
Target:
Raw Record
priority_high
Fix This Now
DMARC AI can automatically generate a hardened record and manage your RUA reports for all 100+ subdomains.
What is a DMARC Checker?
A DMARC Checker is a diagnostic tool designed to verify if a domain has a valid DMARC (Domain-based Message Authentication, Reporting, and Conformance) record published in its DNS. For MSPs and security professionals, this is the first line of defense in identifying misconfigurations that could allow cybercriminals to impersonate a brand.
Without a proper checker, small syntax errors can invalidate your entire email security posture, leading to massive deliverability issues or successful phishing campaigns against your clients.
Validator vs. Analyzer
While a DMARC Validator checks for syntax and basic existence, a DMARC Analyzer goes deeper. It processes the complex RUA/RUF reports sent by ISPs like Google and Microsoft to show exactly who is sending mail on behalf of your domain.
DMARC AI combines both functions, providing a technical audit of your DNS records and translating raw XML data into actionable human intelligence for your security dashboard.
How to Fix DMARC Errors
Audit DNS Syntax
Check for double-quoted values, missing semicolons, or invalid 'p' tags in your TXT record.
Verify Alignment
Ensure your SPF (Return-Path) and DKIM (d=tag) match the domain in the From: header.
Escalate Policy
Move from p=none to p=quarantine once you've confirmed all legitimate sending services are authenticated.
SOC2 Type II Ready
Your domain data is processed with enterprise-grade security protocols.
Real-time Lookups
Direct integration with global DNS clusters for sub-second analysis.
Built for MSPs
Multi-tenant architecture designed to manage thousands of domains.
Stop Spoofing Before It Happens
Built for MSPs who run DMARC as a managed service — protect client reputations at portfolio scale.
Free check is good — running a portfolio is better
Two ways to go from a one-off check to a managed practice.
Start a free 30-day Premium trial
Sign up, add a domain, see real DMARC reports inside 48 hours. No credit card. Premium AI features included for the trial; drop back to free Basic monitoring afterwards or convert per-active-domain.
Book demo
Walk through the multi-tenant dashboard with a real engineer. Bring a client domain — we will load it live and show what the reports look like for your portfolio.
DMARC FAQ for Professionals
What is a DMARC checker? expand_more
A DMARC checker reads the TXT record published at _dmarc.<your-domain> and reports the policy, alignment settings, reporting addresses, and any common configuration mistakes. It tells you what receivers like Gmail, Microsoft, and Yahoo see when they evaluate mail from your domain.
How do I know if my DMARC record is valid? expand_more
A valid DMARC record starts with v=DMARC1, has exactly one policy tag (p=none, p=quarantine, or p=reject), and is published at a single _dmarc subdomain. Running the checker above confirms the syntax, surfaces any duplicate records, and flags missing rua= addresses or weakened sp= sub-policies.
What does “no DMARC record found” mean? expand_more
Receivers cannot find any TXT record (or CNAME chain that resolves to one) at _dmarc.<your-domain>. Without that record, no policy is enforced — attackers can spoof your domain and Gmail/Yahoo will treat your bulk mail with extra suspicion. Publish at least v=DMARC1; p=none; rua=mailto:dmarc@yourdomain to start receiving aggregate reports.
Can I have more than one DMARC record? expand_more
No. RFC 7489 specifies that exactly one DMARC record must exist at _dmarc.<your-domain>. When receivers find two, they ignore both and treat the domain as if no DMARC were published. The checker above flags this as an error.
What is the difference between p=none, p=quarantine and p=reject? expand_more
p=none means receivers send aggregate reports but take no action on failing mail. p=quarantine asks receivers to route failing mail to spam. p=reject tells receivers to drop failing mail at the SMTP layer. Most domains start at p=none for 4–6 weeks, then move to quarantine, then reject as confidence in their sender inventory grows.
Does DMARC work without SPF or DKIM? expand_more
No. DMARC enforces alignment of either SPF or DKIM (and ideally both) against the From: header domain. A domain with neither SPF nor DKIM published will fail DMARC by definition. The minimum viable setup is one published SPF record OR DKIM signing enabled at the sending platform, plus the DMARC TXT record above.
Why do MSPs need continuous DMARC monitoring? expand_more
Client environments change weekly — new marketing platforms come online, SaaS tools rotate sending domains, DKIM keys quietly rotate, SPF records bump past the 10-lookup limit. A point-in-time checker catches the snapshot you take today. Continuous monitoring catches the changes that happen next week before they affect deliverability or client trust.
Example DMARC records
Three real-world DMARC records that show the typical progression from monitoring-only through partial quarantine to full enforcement. Copy any of these as a starting point and adapt the rua= address for your own reporting endpoint.
_dmarc.example.com TXT v=DMARC1; p=none; rua=mailto:[email protected]; pct=100
_dmarc.example.com TXT v=DMARC1; p=quarantine; rua=mailto:[email protected]; adkim=s; aspf=s; pct=50
_dmarc.example.com TXT v=DMARC1; p=reject; rua=mailto:[email protected]; sp=reject
Every DMARC tag, explained
-
vVersion Required - Always DMARC1. Must be the first tag in the record — receivers that find anything else here ignore the record entirely. v=DMARC1
-
pPolicy Required - What receivers do with mail that fails DMARC. One of none (monitor only), quarantine (route to spam), or reject (drop at SMTP). p=reject
-
spSubdomain policy - Optional override applied to subdomains. When absent, subdomains inherit p= — which is the safest default. Only set sp= when you genuinely want different behaviour for subdomains. sp=reject
-
pctPercent - Share of failing mail the policy applies to. Defaults to 100. Use lower values (25, 50, 75) during phased rollouts so a misconfiguration affects only a fraction of traffic. pct=100
-
ruaAggregate reports - mailto: addresses that receive the daily XML aggregate reports. Comma-separated; up to two addresses. Without rua= you publish DMARC but have zero visibility into what receivers see. rua=mailto:[email protected]
-
rufForensic reports - mailto: addresses that receive per-failure forensic reports. Few providers send these today, and the volume + PII concerns mean most MSPs leave ruf= off. ruf=mailto:[email protected]
-
adkimDKIM alignment - How DKIM alignment is evaluated against From:. s = strict (d= must equal the From: domain exactly), r = relaxed (a registered-domain match is enough, the default). adkim=s
-
aspfSPF alignment - Same as adkim but for SPF. s = strict (envelope-from must match From: exactly), r = relaxed (the default). aspf=s
-
foFailure reporting - When to generate forensic reports. 0 = both SPF and DKIM failed; 1 = either failed; d = DKIM signature did not validate; s = SPF did not pass. fo=1
Common DMARC mistakes and how to fix them
These are the seven failure modes a DMARC checker catches most often. Every one of them silently breaks enforcement; most are a one-line DNS fix.
| Issue | What it means | How to fix it |
|---|---|---|
|
No DMARC record found
|
No TXT record (or CNAME chain) is published at _dmarc.<your-domain>. | Add a TXT record at _dmarc.example.com starting with v=DMARC1; p=none; rua=mailto:[email protected]. |
|
Multiple DMARC records
|
More than one TXT record exists at _dmarc. Receivers ignore both and treat the domain as if DMARC is missing. | Delete every duplicate. Exactly one DMARC TXT record must exist at the apex DMARC hostname. |
|
Invalid DMARC version
|
The record does not start with v=DMARC1 (or has a typo like v=DMARC). | Edit the record so v=DMARC1 is the very first tag. Anything else makes receivers skip the record entirely. |
|
Missing policy
|
The record has v=DMARC1 but no p= tag. | Add p=none for monitoring, p=quarantine for spam routing, or p=reject for full enforcement. |
|
Invalid rua destination
|
rua= points to a malformed address, a non-mailto URI, or a domain that has not authorized external reports. | Use mailto:[email protected] format. If receiving reports for a different domain, publish the cross-domain authorization TXT record. |
|
Policy still at p=none
|
Reports are collected but no enforcement happens. The domain remains spoofable. | After 4–6 weeks of monitoring, move to p=quarantine with pct=25 and ramp up to p=reject. |
|
SPF or DKIM never aligns
|
Authentication passes but the authenticating domain does not align with the From: header. | Configure the sending service to use an aligned return-path, or rely on aligned DKIM signing of the From: domain. |
- What it means
- No TXT record (or CNAME chain) is published at _dmarc.<your-domain>.
- How to fix it
- Add a TXT record at _dmarc.example.com starting with v=DMARC1; p=none; rua=mailto:[email protected].
- What it means
- More than one TXT record exists at _dmarc. Receivers ignore both and treat the domain as if DMARC is missing.
- How to fix it
- Delete every duplicate. Exactly one DMARC TXT record must exist at the apex DMARC hostname.
- What it means
- The record does not start with v=DMARC1 (or has a typo like v=DMARC).
- How to fix it
- Edit the record so v=DMARC1 is the very first tag. Anything else makes receivers skip the record entirely.
- What it means
- The record has v=DMARC1 but no p= tag.
- How to fix it
- Add p=none for monitoring, p=quarantine for spam routing, or p=reject for full enforcement.
- What it means
- rua= points to a malformed address, a non-mailto URI, or a domain that has not authorized external reports.
- How to fix it
- Use mailto:[email protected] format. If receiving reports for a different domain, publish the cross-domain authorization TXT record.
- What it means
- Reports are collected but no enforcement happens. The domain remains spoofable.
- How to fix it
- After 4–6 weeks of monitoring, move to p=quarantine with pct=25 and ramp up to p=reject.
- What it means
- Authentication passes but the authenticating domain does not align with the From: header.
- How to fix it
- Configure the sending service to use an aligned return-path, or rely on aligned DKIM signing of the From: domain.
From manual to managed
When a checker is not enough: why continuous monitoring matters
A DMARC checker reads what is in DNS the moment you press Analyze. It is a flashlight, not a watchtower.
The configurations that break DMARC the most often are not the ones an editor mis-typed at noon. They are the slow drifts: marketing rotates a sender, a new SaaS tool is procured without IT signoff, an SPF record grows past the 10-lookup limit one include= at a time. None of these show up in a manual quarterly check because the snapshot you took last quarter looked fine.
DMARC AI watches the DNS records, ingests aggregate reports, and surfaces drifts as they happen — across every domain in a single multi-tenant dashboard. The same checker you use today for prospecting becomes the continuous monitor that closes the loop on every client environment.
- Multi-tenant dashboard across every client domain
- Aggregate-report parsing with new-sender alerts
- AI-assisted policy progression from p=none → p=reject
- Client-ready PDF reports on a schedule
- Webhook + API for ticketing-system integration
Related tools
Verify the rest of your email-authentication stack with these free checkers.
SPF Analyzer
Parse your SPF record, count DNS lookups against the 10-lookup limit, find void lookups.
Open tool keyDKIM Validator
Fetch a DKIM public key by selector and domain, verify the record structure and key length.
Open tool paletteBIMI Generator
Build a valid BIMI DNS record, check your SVG logo, attach a VMC certificate URL.
Open tool lockMTA-STS Checker
Verify your domain's MTA-STS policy — TLS mode, allowed MX hosts, max_age — in one HTTPS probe.
Open toolContinue learning
Deeper Academy reading on the protocols this tool checks.
DMARC explained — Complete guide
Tags, policies, alignment, aggregate vs forensic reports, and a phased rollout plan from monitoring to enforcement.
8 min readSPF (Sender Policy Framework) — Complete guide
Mechanisms, qualifiers, the 10-DNS-lookup limit, void lookups, and the include= chain that breaks most production SPF records.
7 min readDKIM — Complete guide
Selectors, key rotation, signature anatomy, alignment with DMARC, and how DKIM survives forwarding when SPF does not.
6 min readBIMI — Display your verified brand logo
BIMI prerequisites, SVG Tiny PS logo specs, VMC certificates, and the deliverability story that justifies the project budget.
5 min read