For MSPs
Free SPF Record Checker & Lookup
Enter a domain to find its SPF record, validate the syntax, trace nested includes, and count DNS lookups, free, no signup.
What is SPF?
SPF, or Sender Policy Framework, is a DNS-based email authentication method that lists which systems may use a domain in the SMTP envelope sender. A public record check shows the policy a receiver can discover. It does not prove that a particular message passed SPF or that the authenticated domain aligned for DMARC.
How to read your SPF result
| Result | What it means | What to do |
|---|---|---|
| Valid record | The checker found one interpretable SPF policy for the submitted domain. | Confirm every mechanism belongs to an active sender and verify a real message separately. |
| No SPF record | No v=spf1 policy was found at the exact domain entered. | Confirm the MAIL FROM domain, then publish the record supplied by the systems that actually send mail. |
| Multiple SPF records | More than one v=spf1 policy exists at the same owner name, producing a permanent error. | Inventory every authorized sender and consolidate the mechanisms into one policy. |
| 9 or 10 DNS lookups | The record is at or near the RFC 7208 ceiling and has little room for a provider-side change. | Remove retired senders and inspect the nested include chain before it becomes a permerror. |
| PermError or over 10 | The policy cannot be evaluated reliably because of syntax, duplicate records, broken dependencies, or excess DNS work. | Fix the reported cause and retest; repeated delivery attempts will not repair a permanent policy error. |
| ~all or -all | Softfail and fail express different authorization statements, but the receiving system chooses final handling. | Map every legitimate sender before tightening the qualifier, then validate production mail and DMARC alignment. |
How to check SPF correctly
- 1. Identify the domain SPF actually used. Open the full headers of a delivered message and find the receiver-added
smtp.mailfromidentity beside the SPF result. A provider-controlled return path or custom subdomain may be different from the visible From domain. - 2. Submit that exact domain. Enter only the domain, without a mailbox, protocol, or path. If no message exists yet, use the domain in the sending provider's current setup instructions and treat the result as configuration evidence rather than a production-message test.
- 3. Read mechanisms and modifiers in order. Review
ip4,ip6,a,mx,include,exists,all, and anyredirect. An include runs another policy; it does not simply name a sender. - 4. Inspect recursive DNS work. RFC 7208 allows at most ten lookup-causing terms across the complete evaluation. Nested terms spend from the same budget, so counting only the visible includes is not enough.
What this checker can prove
The checker proves what public DNS returns for the submitted name, whether one SPF policy can be parsed, and how its visible and nested mechanisms use the DNS lookup budget. Its interpretation follows RFC 7208. It cannot see a private sending inventory, know which identity a receiver evaluated unless you supply it, or guarantee inbox placement.
For Google Workspace, use the custom-domain MAIL FROM identity shown in the trusted message header. Google's SPF troubleshooting guidance likewise separates the public-DNS check from the actual message result.
Fix the result, then retest the message
Start with an inventory of corporate mail, marketing platforms, transactional systems, ticketing, billing, and devices. Remove retired senders before adding mechanisms or flattening includes. For an over-limit record, follow the SPF PermError repair sequence and keep a named owner for every dependency.
After authoritative DNS serves the change, run this lookup again. Then send a new message through each changed production path and verify the evaluated identity, connecting IP, SPF result, and visible From domain in a trusted Authentication-Results header. Check DMARC separately because an SPF pass for an unaligned return path does not produce an aligned DMARC pass.
Related SPF checks and repairs
Email authentication knowledge base
The building blocks of an SPF record explained.
- v
- The version tag must exclusively be “spf1”. Incorrect or missing versions result in the SPF record being disregarded.
- ip4
- This tag lists IPv4 addresses authorized to send emails for the domain.
- ip6
- This tag specifies IPv6 addresses permitted to email on the domain’s behalf.
- a
- The A record tag permits sender validation via the domain’s IP address, defaulting to the current domain if unspecified.
- mx
- The MX record tag validates the mail server’s MX record, defaulting to the current domain if not specified.
- ptr
- The PTR tag initiates a PTR check for client IP hostnames, advised against in RFC 7208 due to excessive DNS lookups.
- exists
- The exists tag verifies the presence of an A record on the specified domain.
- include
- The include tag is crucial for accurate SPF records, confirming all listed domains/subdomains as legitimate sending sources to recipients.
- all
- The all tag is mandatory, positioned at the SPF record’s end, guiding recipients on handling emails from unauthorized sources based on its qualifiers (~, +, -, ?).