Free · No sign-up · MX, SPF and DMARC

SPF Checker

Look up and validate the SPF record of any domain. Count DNS lookups, follow every include, check the all mechanism and get clear fixes for SPF errors.

Every check reads the domain's public DNS records for MX, SPF and DMARC. DKIM needs a selector from a real email, so check it with the email header analyzer.

Advertisement

What is an SPF record?

An SPF (Sender Policy Framework) record is a TXT record in your DNS that lists every server allowed to send email for your domain. When an email arrives, the receiving server checks the sending server against this list. A record for a domain that uses Google Workspace can be as simple as v=spf1 include:_spf.google.com ~all.

What this SPF checker tests

SPF mechanisms explained

ip4 and ip6

Allow a single IP address or a range, such as ip4:203.0.113.0/24. They do not use a DNS lookup.

include

Allow the servers of another service, such as include:_spf.google.com. Each include uses at least one lookup.

a and mx

Allow the IP of the domain's A record or of its mail servers. Each uses a DNS lookup.

all

Matches every other server and goes at the end: -all rejects them, ~all soft fails them and ?all is neutral.

How to fix common SPF errors

SPF record examples for popular email services

Each service that sends email for you gives you an include to add. Always copy the exact value from your provider's setup page, because some use different values per region.

ServiceSPF include
Google Workspaceinclude:_spf.google.com
Microsoft 365include:spf.protection.outlook.com
Zoho Mailinclude:zohomail.com
SendGridinclude:sendgrid.net
Mailguninclude:mailgun.org
Amazon SES (custom MAIL FROM)include:amazonses.com

To use several services, put all the includes in one record. For example, a domain that uses Google Workspace for staff email and SendGrid for website emails would publish:

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

SPF results explained

ResultWhat it means
passThe sending server is listed in the SPF record.
failThe server is not listed and the record ends with -all.
softfailThe server is not listed and the record ends with ~all. Usually treated as suspicious, not rejected.
neutralThe record ends with ?all, so it makes no claim either way.
noneThe domain has no SPF record.
permerrorThe record is broken, for example two records or more than 10 lookups.
temperrorA temporary DNS problem. The receiver may try again later.

How to create or update an SPF record

SPF works best with DMARC. Check your DMARC record, and test your email content with the spam checker.

Advertisement

Frequently asked questions

SPF (Sender Policy Framework) is a TXT record in DNS that lists the servers allowed to send email for a domain. Receiving servers check it to decide whether an email really came from an approved server.
Enter your domain or any email address on it and click Check SPF. The tool shows the record, explains each part, counts the DNS lookups and lists any problems with a fix.
SPF allows at most 10 DNS lookups. Each include, a, mx, ptr, exists and redirect counts, including the ones inside included records. If a record needs more than 10, SPF fails with a permanent error.
Both are safe. ~all (soft fail) marks unlisted servers as suspicious, and -all (hard fail) tells receivers to reject them. Many domains use ~all with a DMARC policy, which decides what happens to failing email.
No. A domain must have only one SPF record. Two or more cause a permanent error, and SPF fails for every email. Merge all the services into one record.
Not fully. SPF checks the hidden return address, not the From address people see. To protect the visible From address, use SPF and DKIM together with a DMARC policy.
Add it at your DNS host, such as Cloudflare, GoDaddy or your web host. Create a TXT record on the root of the domain (often written as @) and paste the record that starts with v=spf1 as the value.
Permerror means the SPF record is broken, so receivers cannot use it. The usual causes are two SPF records on one domain, more than 10 DNS lookups, or a typing mistake in the record.
Most changes work within a few minutes to an hour. Old answers can stay in caches until the record's TTL ends, and rarely it can take up to 48 hours.
SPF flattening replaces include mechanisms with the IP ranges they contain, which lowers the number of DNS lookups. It works, but the IPs change over time, so a flattened record must be updated regularly or email from that service will start failing.

More free email tools

See all tools →