SPF change pre-flight
Paste the SPF record you're about to publish. We'll check it against what's live and show you which senders will break.
What this checks before you publish
We read the SPF record your domain serves right now and resolve every include in it. Then we read the record you pasted the way a receiver would, and resolve it as if it were already live. The result above lists each address range that would stop passing, the mechanism it came from, and how many DNS lookups the new record costs.
This check tests an SPF edit before you publish it. An edit that breaks your mail can still have the right syntax and includes that look plausible. A checker that reads live DNS only sees the edit after you publish it, and by then any sender you dropped is already failing.
The usual mistake is removing an include you don't recognize while the platform behind it is still sending. The record is still valid, so your DNS host accepts the edit. From then on, that platform's mail fails SPF.
Questions
Why did the lookup count jump when I only added one line?
Lookups are spent inside your includes, not on the lines you can see. One new
include: can pull in four more lookups from the includes nested under it. Past 10,
a sender that receivers need an eleventh lookup to find gets permerror and loses its pass.
We resolve the
full chain of the record you pasted, the same way a receiver does, and show the total above.
The SPF 10-lookup limit guide covers how to get the
number down.
I need includes for four different senders. Is that a problem?
Not on its own. You can have as many include: terms as you like, as long as they
cost no more than 10 lookups between them. Four includes can come to four lookups or to
fifteen, depending on what each provider nests inside its own record, and you can't tell which
from reading your line. Paste the combined record and the count above resolves the whole chain.
Can I add a second SPF record instead of editing this one?
No. A domain publishes one. Two v=spf1 records on the same name is a permerror,
and a permerror costs every sender in both records its pass, so the new one doesn't work and
the old one stops working too. A new sender's terms go inside the record that's already there.
The SPF record generator adds them without touching
the rest. Paste the result here to see what changed.
What does changing the ending from -all to ~all do?
With -all, unlisted senders fail SPF. With ~all, unlisted senders
get an SPF softfail. DMARC treats both results as an SPF failure. The receiver decides whether
to accept or reject the mail. +all passes everyone. Check that the record lists
every sender you use before changing the ending.
What can't this check see?
The a, mx, exists and ptr mechanisms, and
any term with a macro in it, resolve when a message arrives. We can't expand them from the
record alone, so their addresses aren't in any total on this page. When one is present, you'll
see a + after each count, because the real number can be higher. Dropping an mx can cost you a sender
even when the address counts on both sides stay the same, so read the list of terms as well as
the totals.
How long is the comparison good for?
The result shows what DNS returned when you ran the check. The includes in your record belong to other companies, and they add and remove address ranges without telling you. If you make the edit tomorrow, run the check again first.
Can this check run on every DNS pull request?
Yes. If your DNS records live in a repository, our free GitHub Action sends each proposed record to this check and fails the pull request when the change would break SPF. The SPF pull request guide covers the setup, with a recipe for octoDNS, DNSControl and Terraform.
Can I check a domain I don't own?
Yes. The check reads public DNS, the same as a receiving mail server does. A consultant can check a client's change before the change window opens. No account is needed.
Should I use the SPF record generator or this check?
Use both, in that order. The SPF record generator builds the record from your senders and adds them to the record your domain publishes today. Paste the result here to see what it changes. Once it's live, the SPF checker reads it back, and the combined checker covers DKIM and DMARC as well.
The SPF syntax reference lists what every mechanism costs.
Run this same check against your own mail
Point your rua tag at us and, on your dashboard, we also count the mail each dropped range sent. On the Business plan and up, we also tell you which includes are safe to remove and write a safer record.
Watch this domainFree for your first domain · No card · Per-source totals kept for life