DMARC Inspector
Enter a domain and see the DMARC record it publishes, what that policy does to mail which fails, and which of its tags are wrong.
What this tool does
DMARC Inspector sends the domain you enter to the OmniKitly service, which resolves the TXT records at _dmarc followed by that name — the one place a DMARC record is ever published. The record that comes back is then analysed in the page itself. The first line gives the policy on its own and what it does to failing mail; a table lists every tag as published with what that tag means; and rows are added for the defaults a record leaves out, so an absent sp shows as inherited from p and unset alignment shows as relaxed. Findings and Notes follow underneath, and the raw lookup — the exact name queried, every TXT string found at it and the service's own summary — stays downloadable as dmarc-yourdomain.json.
The policy tag is the whole point of the record, and its three values are nowhere near equivalent. A policy of none changes nothing about delivery: mail failing the check arrives exactly as it did before, and the record buys reports and nothing else. Quarantine asks receivers to file that mail as spam. p=reject asks them to refuse it during the SMTP conversation, and it is the only setting that actually stops a stranger sending as the domain. A record can carry every optional tag, look thoroughly considered, and still be doing nothing, because monitoring is where most rollouts stop and quietly stay.
Four things limit what a result can settle. The query is made against exactly the name you type and never climbs to the organisational domain, so asking about mail.example.com reports nothing even when example.com publishes a record its subdomains inherit. A resolver failure is not distinguished from an absent record — a timeout, a server failure and a domain publishing nothing all end at the same "No DMARC record published" note. When two DMARC records sit at the same name, a state receivers treat as having no usable policy at all, only the first is analysed and the second shows up solely in the downloaded JSON. And where aggregate reports go to an outside domain, the report names the authorisation record that domain must publish (yourdomain.example._report._dmarc.theirdomain) without ever querying it, so that check is left with you.
Whatever the input field says, this page can only run a hostname. The label reads "DMARC record — or a domain to look it up", the placeholder offers both, and Load sample fills the box with a complete record — but sending that record returns "That is not a valid hostname" from the service, because semicolons, spaces and equals signs are not a host name. The record parser those controls point at is real, and is exactly what analyses the record once the lookup has fetched it; it simply cannot be reached by pasting. Typing _dmarc.example.com out in full fails the same check, since an underscore is not accepted in the name you submit and the label is prepended for you anyway. The domain travels over an encrypted connection as a job setting, is stored alongside the job record, and goes when the JSON does at the end of the retention window — six hours after the run unless that default has been changed.
Enforcement is only ever as good as the alignment underneath it, and the analysis says so where the record asks for strict. With adkim=s or aspf=s, a signature or an envelope domain that merely shares the organisational domain no longer counts, so mail from a subdomain or from a sender that rewrites the return path fails DMARC while SPF and DKIM both report a pass. That combination, read next to quarantine or reject, is the usual explanation for a campaign disappearing into spam the week a record was tightened.
How to use it
- Enter the domain on its own. example.com, not _dmarc.example.com and not a full URL. The service prepends the _dmarc label itself and queries the TXT records at the resulting name.
- Read the first line of the report. It states the policy by itself, then what happens to mail that fails. The hint under the output box counts the errors and warnings found in the record.
- Work down the Findings list. Errors are the faults that break the record or an address inside it. Warnings are what weakens it: no rua, a pct below 100, ruf set without rua.
- Keep the JSON when tracking a rollout. The lookup downloads as dmarc-yourdomain.json, so a before-and-after pair becomes a diff rather than a memory of what the record said last month.
Processing & privacy
Secure server processing. This operation requires temporary server processing.
Common use cases
Judging whether a supplier can be impersonated
A domain sitting on a policy of none can be forged in mail that passes every filter the recipient has. One lookup answers that for a domain you do not control.
Confirming your own edit went live
DNS changes propagate on their own schedule. Querying the published name shows what receivers can see, rather than what the control panel form says was saved.
Moving from monitoring towards enforcement
A rollout stalled at monitoring for a year is the normal outcome. Running the lookup at each step records what was actually live when the change was made.
Explaining mail that lands in spam
The table shows what the domain published, so strict alignment sitting next to quarantine accounts for a subdomain or a bulk sender failing while SPF and DKIM pass.
Questions
Where does the domain I type end up?
Why does it report no record when I know one exists?
The field offers to take a pasted record — does that work?
Does it tell me whether my record is correct?
Does p=reject stop everything pretending to be my domain?
How soon does a change to my record appear here?
Does this check SPF and DKIM as well?
Related tools
- Meta Tag Preview — See how your title and description look in search results.
- Redirect Checker — Follow a redirect chain and see every hop.
- WCAG Contrast Checker — Test colour pairs against AA and AAA thresholds.
- Favicon Generator — Generate a full favicon set from one source image.
- Open Graph Preview — Preview how a link unfurls on social platforms.
- Social Card Preview — Check Twitter, LinkedIn and Slack card rendering.