Email Domain Security Checker

Check a domain's SPF, DMARC and DKIM — and see exactly how easy it is to spoof.

Enter any domain and this tool pulls its SPF, DMARC and DKIM records straight from DNS, then does the analysis a mail-receiving server would: it parses every SPF mechanism and DMARC tag into plain English, counts the SPF DNS lookups (the RFC 7208 10-lookup limit that silently breaks SPF), probes the common DKIM selectors, and scores how well the domain resists email spoofing. You get a prioritized list of practical fixes — not just "record present / missing".

🔒 100% private — nothing is uploaded or stored. Your browser queries the public DNS-over-HTTPS service you choose (Google or Cloudflare) directly with plain JavaScript. The domain you check goes to that DNS provider — not to our servers. Every bit of analysis (SPF parsing, lookup counting, DMARC/DKIM evaluation, the score and the recommendations) runs locally in your browser. We never see, log or store what you check.
⚠️ These are public records. SPF, DMARC and DKIM are published in DNS on purpose — any mail server on earth reads them to decide whether to trust a message. Checking a domain's mail-authentication setup is a normal, public operation (the same thing Gmail, Outlook and every other provider do to your domain).

Domain to check (the domain that sends the mail — e.g. yourcompany.com, not the full email address)

Press Enter to check.

How email authentication actually works

When you send an email, the message claims to come from a domain ([email protected]). But that claim is just text — anyone can type any address they like into the "From" field. Email authentication exists so the receiving mail server can independently verify, using public DNS records, that the sender is actually authorized by that domain. Three systems do this job, and they answer three different questions:

SystemQuestion it answersHow
SPF "Is this server allowed to send mail as my domain?" Your domain publishes an SPF record listing the IP addresses / hosts authorized to send. The receiver checks the connecting IP against that list.
DKIM "Was this message really signed by my domain, and is it unaltered?" Your mail server cryptographically signs each message with a private key. The public key is published in DNS; the receiver verifies the signature.
DMARC "If SPF or DKIM fails, what should the receiver do — and who do I report it to?" DMARC ties the two together: it requires the "From" domain to align with the domain that passed SPF or DKIM, and it sets a policy (none / quarantine / reject) plus a reporting address.

SPF and DKIM are the evidence; DMARC is the policy that says what to do when the evidence is missing or contradictory. A domain with all three, configured with an enforcing DMARC policy, is very hard to spoof. A domain with none of them can be impersonated by essentially anyone.

Reading an SPF record

An SPF record is a space-separated list. It starts with v=spf1 and then contains mechanisms (things to match against) and modifiers (options). Each mechanism can carry a qualifier that says what to do when it matches:

QualifierMeaningReceiver behaviour on match
+Pass (the default when omitted)Authorized — accept.
-FailNot authorized — reject.
~SoftfailProbably not authorized — flag, but usually still deliver.
?NeutralTake no position.

The most important mechanism is all, which matches everything. It almost always appears last and sets the default outcome for any sender not matched earlier: -all (hard fail, strongest), ~all (soft fail, common), ?all (neutral, weak) or +all (pass — this authorizes everyone and defeats SPF entirely).

The 10-lookup limit. RFC 7208 says an SPF check must not require more than 10 DNS queries (including the SPF record itself). Mechanisms like include:, a, mx, ptr and redirect: each trigger lookups — and an include: can itself contain more includes. When a record exceeds the limit, most receivers stop evaluating it and treat the result as a permerror, which often means your legitimate mail starts failing. This tool counts the lookups for you.

Reading a DMARC record

A DMARC record lives at _dmarc.yourdomain.com and is a set of key=value tags separated by semicolons. The ones that matter:

TagWhat it doesGood values
vVersion (required).DMARC1
pPolicy for the domain when mail fails SPF/DKIM alignment (required).reject > quarantine > none
spSeparate policy for subdomains.match your subdomain sending
ruaWhere aggregate reports are sent (daily "who sent as you" summaries).mailto:[email protected]
rufWhere forensic (per-message failure) reports are sent.optional
pctPercentage of mail the policy applies to.100
aspf / adkimAlignment strictness for SPF / DKIM.r (relaxed) is the safe default

The recommended path is: publish p=none with a rua address first, read the aggregate reports for a couple of weeks to make sure your legitimate senders are authenticating, then move to p=quarantine, and finally p=reject. That gradual enforcement is what stops spoofing without breaking your own mail.

Common email-authentication problems (and what they mean)

  • No SPF record — the receiver has no list of authorized senders, so anyone can send mail claiming to be your domain. This is the single biggest spoofing enabler.
  • Multiple SPF records — invalid. A domain may publish exactly one SPF record; with two or more, receivers pick one (often arbitrarily), so your policy is unpredictable. Consolidate to one.
  • SPF over the 10-lookup limit — too many include: chains. Receivers give up (permerror) and your real mail can be rejected or downgraded.
  • SPF ends in +all — authorizes every IP on the internet. SPF is present but provides zero protection.
  • No DMARC record — even with good SPF/DKIM, the receiver has no policy for what to do on failure, and you get no reports. A top cause of legitimate mail landing in spam.
  • DMARC p=none — monitoring only. Nothing is enforced, so spoofed mail is still delivered. Fine as a starting point, not as an end state.
  • No DKIM key — outgoing mail is unsigned, so receivers can't verify it wasn't altered in transit, and DMARC alignment has one less signal to work with.
  • Weak DKIM key (1024-bit) — 1024-bit RSA is considered breakable in the long term; 2048-bit is the current minimum, 3072+ is better.
  • SPF/DKIM pass but don't align with the "From" domain — e.g. you send from mail.yourcompany.com but the "From" address is @yourcompany.com and DMARC uses strict alignment. DMARC then fails even though SPF and DKIM individually passed. Relaxed alignment (aspf=r / adkim=r) fixes most of these.

A sensible starting configuration

For a domain that sends mail through a single provider (Google Workspace, Microsoft 365, a hosting provider, etc.):

  1. SPF — one record listing your provider, ending in -all. Example for Google Workspace: v=spf1 include:_spf.google.com -all. For Microsoft 365: v=spf1 include:spf.protection.outlook.com -all.
  2. DKIM — enable signing in your provider's admin console and publish the key it gives you (this is what this tool's DKIM probe is looking for).
  3. DMARC — start with v=DMARC1; p=none; rua=mailto:[email protected], then after a clean couple of weeks of reports move to p=quarantine and finally p=reject.

Do one change at a time and re-run this checker after each — watch the score climb and the findings clear. Re-check 24–48h after any change so you're reading the propagated records, not a stale cache.


Luke Keam
Thank you for reading. Get in touch
Luke Keam | techgeek.biz