SPF & DMARC Checker

Read a domain’s email authentication and get a verdict in plain words — not “the record exists”, but whether it actually stops anyone from sending mail as you.

Reads public DNS only. Nothing is sent, and nothing on your domain is changed.

Example result
spf-dmarc  yourbrand.com
SPFBroken — 2 records

The standard allows exactly one record. With more than one, SPF fails altogether — even though each record looks correct on its own.

v=spf1 include:_spf.google.com ~all

DMARCMonitoring only (p=none)

Reports are collected, but forged mail is still delivered.

v=DMARC1; p=none; rua=mailto:dmarc@yourbrand.com

* DKIM is not checked: its record name depends on a selector chosen by your mail provider, so a miss would not mean it is missing.

What you get

A verdict, not a raw record

Anyone can print your DNS back at you. The useful question is whether what’s there actually protects the domain.

Plain-English verdicts

Enforcing, soft fail, permissive, monitoring-only, missing — each with one line explaining what it means for mail claiming to be from you.

Catches two SPF records

The failure you cannot see by eye: both records look valid, and SPF stops working entirely. Classic leftover from a mail provider migration.

Flags p=none

The most common DMARC policy there is. The domain “has DMARC”, the audit checkbox is ticked, and forged mail still lands in inboxes.

What SPF and DMARC actually do

Email has no built-in proof of who sent it. Anyone can put your domain in the From line. SPF and DMARC are the two public DNS records that push back on that: SPF lists which servers are allowed to send mail for your domain, and DMARC tells receiving servers what to do when a message fails those checks. Neither is optional if you care whether invoices, password resets or support replies arriving in your name are really yours.

The catch is that both records can be present and still protect nothing. That is what this checker is for — it reads them the way a receiving mail server would and tells you which of those two situations you are in.

SPF verdicts

DMARC verdicts

The two problems worth checking for

Two SPF records. This is the one nobody catches by reading their DNS. Both records are syntactically fine, both look like something you'd write on purpose, and the result is that SPF does not apply to your domain at all. It happens almost every time a company moves mail providers and adds the new record without deleting the old one.

p=none. The default anyone lands on when they set DMARC up "to start collecting data" — and then never revisit. It is the most widespread DMARC policy in existence. The domain shows up as DMARC-enabled in every audit, and forged mail sent in its name is delivered exactly as before.

What this checker does not do

  • DKIM. Not checked, on purpose. The record name contains a selector picked by your mail provider — google, selector1, k1 and hundreds of others — so it cannot be found by guessing. Reporting "DKIM missing" on a domain that has it would be worse than staying quiet.
  • DMARC reports. It reads your policy, not the rua aggregate reports mailed to you. Parsing those is a different product.
  • The SPF lookup limit. An SPF record that needs more than ten DNS lookups also fails, and that isn’t counted here.
  • MTA-STS, TLS-RPT and BIMI. Out of scope — this is about who may send as you, not about transport security or logos.
  • Fixing anything. No generated record to paste, no automatic changes. It reads public DNS and reports.

From a one-off check to knowing when it changes

A check tells you where you stand today. The thing that actually bites is a change you didn’t make — a migration that drops your SPF, or a DMARC record quietly rewritten. DNS monitoring in Domain Monitor Hub reads both records during its daily DNS check, shows these same verdicts on the domain page, and any change to SPF or DMARC reaches you as a DNS change alert. Check a domain here; let the app keep watch.

Questions, answered

SPF & DMARC FAQ

Yes — free and no account required. Enter a domain and it reads the public records that decide who may send email as that domain.

Two records. SPF is read from the domain's own TXT records — it looks for a record starting with v=spf1 and counts how many there are. DMARC is read from _dmarc.yourdomain.com, looking for a record starting with v=DMARC1.

Because it can't be checked reliably from the outside. A DKIM record lives at a name containing a selector chosen by your mail provider — google for Google Workspace, selector1 for Microsoft, k1 for Mailchimp, and so on. Failing to guess the selector doesn't mean DKIM is missing, and telling you "DKIM missing" on a domain that has it would be worse than not checking at all.

The standard allows exactly one v=spf1 record per domain. When there are two, receivers treat the result as a permanent error and SPF stops applying altogether — even though each record on its own looks perfectly valid. It usually happens after a mail provider change, when the old record is never removed.

Almost certainly p=none, by far the most common DMARC policy in the wild. It asks receivers to send reports but not to act, so forged mail is still delivered. The record exists and passes an audit checkbox; it stops nobody.

Yes. DNS monitoring in Domain Monitor Hub reads both records during its daily check and shows the same verdicts on the domain page. Any change to SPF or DMARC reaches you as a DNS change alert.
Keep exploring

More free domain tools

Know the moment your email authentication changes

Domain Monitor Hub reads your SPF and DMARC every day, shows the verdict on the domain page, and alerts you when either one changes — alongside expiry, SSL, WHOIS and the rest of your DNS.

Start monitoring — free
Free forever for 3 domains · No credit card · Sign in with Google