SPF Record Checker
Retrieve and parse the SPF TXT record for any domain. Verifies syntax, counts DNS lookups against the 10-lookup limit, and reviews the all-qualifier policy.
Provide a domain name to validate its SPF record.
Every network tool you'll ever need.
Purpose-built utilities for ports, IPs, DNS and email. Completely free, all powered by external probes.
Port Checker
Probe any TCP port on any host
DNS Lookup
Look up the IP addresses behind a domain
rDNS Check
Reverse DNS: map IPs back to hostnames (PTR)
Ping Tool
Check host reachability with ICMP
Speed Test
Gauge download, upload and latency
Proxy Check
Spot VPN or proxy usage
Link Checker
Confirm whether URLs are reachable
HTTP Headers Checker
Examine response headers
What Is My IP?
Reveal your current public IP
IP Subnet Calculator
Work out masks, ranges and CIDR math
IP Converter
Convert between IPv4 and IPv6 either way
ASN Lookup
Look up org, ISP and IP ranges by ASN
IP Blacklist Checker
See whether an IP is spam-listed
IPv6 Website Test
Test if a website supports IPv6 (AAAA + reachability)
SPF Record Checker
Verify your email sender policy
DMARC Validator
Read policy, alignment and reporting config
DKIM Checker
Validate DKIM signatures
Email Header Analyzer
Follow email origin and routing
SPF Checker: Validate Your Domain's Sender Policy Framework Record
An SPF record is a DNS TXT entry that lists which mail servers are authorized to send email on behalf of a domain. When a receiving mail server gets a message, it queries the sender's DNS to find that record and checks whether the sending IP is listed. If the check fails, the message may be rejected or marked as spam. This SPF checker retrieves the TXT record for any domain, parses every mechanism and qualifier, counts DNS lookups, and flags any configuration problems it finds.
Why a Correct SPF Record Matters
A misconfigured SPF record does not just reduce deliverability. It can cause a permanent error (permerror) that leads receiving servers to reject your mail entirely. The most common cause is exceeding the DNS lookup limit.
SPF evaluation allows a maximum of 10 DNS-resolving lookups. Mechanisms like
include:
,
a
, and
mx
each consume one lookup. Going over that limit produces a permerror, which many servers treat the same as a hard failure. Running a mail SPF check before you deploy a change is the only way to catch this before it affects real messages.
Other problems this tool surfaces include:
-
Missing
allmechanism, which leaves the record with no defined default action -
Use of the deprecated
ptrmechanism, which is slow and unreliable -
Multiple
v=spf1TXT records on the same domain, which is invalid under RFC 7208 -
A
~allsoftfail qualifier where a-allhardfail would give stronger protection
How to Use the SPF Record Checker
The tool works directly in your browser. No account is required, and no data is stored after the check completes.
- Open the SPF Record Checker from the tool menu.
-
Type or paste a domain name into the input field (for example,
example.com). - Click Check . The tool performs a live DNS TXT query for that domain.
- Review the results: the raw SPF record, a validity status, each parsed mechanism with its qualifier, the total DNS lookup count, and any errors or warnings.
The results panel shows each mechanism broken out individually. For every entry you can see its type (such as
ip4:
,
include:
, or
mx
), its value, and its qualifier (
+
pass,
-
fail,
~
softfail, or
?
neutral). The DNS lookup count appears alongside a warning if it exceeds eight, giving you room to act before hitting the hard limit of ten.
Understanding the Results
The validity status tells you whether the record passes basic structural rules. A record that starts with anything other than
v=spf1
is invalid immediately. Beyond structure, the tool evaluates the record against common best-practice rules and reports warnings separately from hard errors.
Warnings do not mean the record is broken today. They flag conditions that often cause problems later, such as a lookup count of nine (one away from the limit) or a softfail qualifier that gives receiving servers discretion to accept suspicious mail. Errors indicate conditions that will cause evaluation failures for some or all receiving servers.
A typical well-formed SPF record looks like this:
v=spf1 include:_spf.google.com ip4:203.0.113.10 -all
This record authorizes Google's mail servers and one specific IP address, then hard-fails everything else. The checker would parse this into three mechanisms, count the DNS lookups consumed by the
include:
directive, and confirm the presence of the
-all
terminator.
When to Run an SPF Check
There are specific moments when verifying your SPF configuration is worth doing deliberately:
-
Before adding a new email service provider that requires its own
include:directive - After migrating to a new mail platform or changing your sending infrastructure
- When investigating delivery failures or spam folder placement
- As part of a regular audit alongside DKIM and DMARC checks
- When a domain has been inactive and you want to confirm its DNS records are still correct
SPF works as one layer in a broader email authentication stack. Checking it in isolation is useful, but pairing the results with a DMARC validation gives you a complete picture of how your domain handles unauthenticated mail. You can also use the DNS lookup tool to query other record types on the same domain.
FAQ
An SPF record is a DNS TXT entry that lists the mail servers permitted to send email for a domain. When a receiving server gets a message, it looks up the sender's domain in DNS, finds the SPF record, and checks whether the sending IP address appears in that list. If it does not, the receiver applies the qualifier defined by the
all
mechanism, which may cause the message to be rejected or flagged.
SPF evaluation has a hard limit of 10 DNS-resolving lookups. Mechanisms like
include:
,
a
, and
mx
each trigger one lookup when a receiving server evaluates your record. Exceeding 10 causes a permerror, which many servers treat as a failure regardless of whether the sending IP is actually authorized. The checker reports your current count and issues a warning when it exceeds 8, giving you a margin to act before hitting the limit.
The qualifier on the
all
mechanism defines what receiving servers should do with mail that does not match any listed sender. A
~all
softfail signals that the domain owner considers the mail suspicious but leaves the final decision to the receiver, so many servers still accept it. A
-all
hardfail explicitly instructs receivers to reject non-matching mail. The checker notes which qualifier your record uses and flags softfail as a weaker policy.
RFC 7208 states that a domain must have at most one TXT record beginning with
v=spf1
. When a receiving server finds multiple SPF records, it cannot determine which one to use and must return a permerror. This means legitimate mail may be rejected even though a valid record exists. The fix is to merge all authorized senders into a single record and delete the duplicate.
This tool queries the domain's DNS for a TXT record starting with
v=spf1
, then parses and validates the mechanisms and qualifiers in that record. SPF authenticates the sending server's IP address. The
DKIM checker
queries a selector-specific DNS record and validates the public key used to verify a cryptographic signature attached to the message body and headers. The two records address different aspects of email authentication and are both needed for a complete setup.
The
ptr
mechanism works by performing a reverse DNS lookup on the sending IP and then a forward lookup to confirm the result. This requires multiple DNS queries, is slow, and is considered unreliable because reverse DNS records are not always accurate or present. RFC 7208 explicitly discourages its use. The checker warns when it appears in a record so you can replace it with a more precise mechanism like
ip4:
or
include:
.
Yes. SPF records are looked up for the exact domain used in the SMTP envelope sender address. A subdomain like
mail.example.com
has its own DNS zone and may have a separate SPF record, or none at all. You can enter any fully qualified domain name into the checker and it will query that specific name. If no record exists for the subdomain, the tool reports that no SPF record was found rather than falling back to the parent domain.
A
dig TXT example.com
command returns the raw record text but does nothing with it. You would then need to manually count DNS lookups, identify each mechanism and qualifier, and check for known problems. This tool performs the same DNS query, then automatically parses every mechanism, counts lookups, applies validation rules, and surfaces errors and warnings. It is useful when you want structured analysis without writing your own parsing logic.
SPF checks the envelope sender address used during the SMTP connection, not the From header visible to recipients. An attacker can spoof the visible From address while using a domain that passes SPF for the envelope. DMARC closes this gap by requiring alignment between the envelope domain and the From header. For full protection, SPF should be paired with DKIM and a DMARC policy. You can validate your DMARC setup with the DMARC Checker .
The tool performs a live DNS query for the domain you enter and returns the results to your browser. Domain names entered into the checker are not stored or logged after the lookup completes. DNS records are publicly accessible by design, so querying a domain's SPF record does not expose any private information. You can review the site's full data practices on the privacy policy page .
If the checker finds no
v=spf1
TXT record, receiving servers have no SPF policy to evaluate. Most will treat this as a neutral result, but some apply stricter handling. You should add an SPF record through your DNS provider listing all servers authorized to send mail for your domain. At minimum, a record like
v=spf1 -all
signals that your domain sends no email, which prevents spoofing for domains used only for receiving.
DNS changes propagate based on the TTL (time to live) value set on your TXT record. Most DNS providers set a default TTL of 3600 seconds (one hour), meaning resolvers that have cached the old record will continue using it for up to that duration. After the TTL expires, resolvers fetch the new record. You can run the checker again after your expected propagation window to confirm the updated record is live.