SPF / DMARC Analyzer
Fetch and analyse a domain's SPF, DMARC and DKIM records, flagging the lookup limits and weak policies that quietly break mail authentication.
Result
What gets checked
- SPF: presence, terminal mechanism, the RFC 7208 ten-lookup limit and duplicate records
- DMARC: policy strength, reporting address and percentage rollout
- DKIM: whether the selector you supply is actually published
About SPF / DMARC Analyzer
SPF, DKIM and DMARC together decide whether your mail is trusted. Each is a DNS record, and each fails in quiet ways: an SPF record one include too deep, a DMARC policy left at p=none for three years, a DKIM selector that was never published. This tool fetches all three and points at the specific problems.
The ten-lookup limit
RFC 7208 caps SPF evaluation at ten DNS-querying mechanisms - include, a, mx, ptr, exists and redirect. Nested includes count towards the same budget, so adding one SaaS sender can push you over the edge. Past ten, receivers return permerror and SPF fails completely, which usually means DMARC fails with it.
Reading the terminal mechanism
-all is a hard fail: nothing else may send. ~all is a soft fail, the normal rollout step. ?all is neutral and provides no protection at all, and +all authorises the entire internet. Alignment matters too: DMARC only passes if the SPF-validated domain or the DKIM signing domain matches the visible From header.
Common use cases
- Investigating why legitimate mail is landing in spam.
- Auditing a domain before moving DMARC from p=none to p=quarantine or p=reject.
- Checking a newly added SaaS sender has not blown the SPF lookup budget.
- Confirming a DKIM selector was actually published after a provider migration.
Edge cases and gotchas
- Only one SPF record may exist per domain - two TXT records starting v=spf1 breaks SPF entirely.
- SPF does not survive forwarding; DKIM usually does. Do not go to p=reject without checking your forwarding paths and aggregate reports.
- Subdomains inherit DMARC via sp= - a strict policy on the parent can break mail from a subdomain you forgot about.