List actual senders first
The initial list is empty and ~all is only a draft ending. Add only IP ranges or include domains supplied by your real mail providers.
- The example uses documentation addresses; replace them before publishing.
Email Dev Tools
Add sending sources in order, then inspect the TXT value and warnings before changing DNS.
No sending mechanisms yet. Add only known senders.
v=spf1 ~all
Visible direct DNS terms: 0 / 10
TXT bytes: 11
This is not the full recursive lookup count; include and redirect targets are not fetched.
~all — all · ActiveProcessed in this browser; no DNS query or update is sent.
Redirect replaces all; the previous all choice is kept.
Result ready. Review warnings before publishing.
An SPF record generator helps when a new sending service needs authorization but the current TXT policy is hard to reason about. An include and an IP rule can look interchangeable until their order changes which sender matches first.
Use this SPF record builder to keep mechanisms in evaluation order, or switch to the SPF record checker and paste an existing SPF TXT record. It checks the text locally and describes the SPF lookup limit without claiming to resolve the include chain.
Keep the policy order visible and the DNS uncertainty explicit.
Move an IP or include row and the generated TXT changes in the same order. The SPF record generator also marks rules after all as unreachable in a pasted record.
The displayed number covers lookup terms visible in this TXT value. An include may add unknown downstream terms, so the SPF record generator never calls the count a complete DNS evaluation.
The initial list is empty and ~all is only a draft ending. Add only IP ranges or include domains supplied by your real mail providers.
Move rows up or down to match the intended SPF evaluation path. Redirect replaces the all ending; turning it off restores the earlier all choice.
In Check mode, paste one TXT value and inspect token positions, unreachable terms and the visible direct count.
Add include, ip4, ip6, a and mx with a qualifier per row; the exported string follows the same order.
The SPF record checker keeps pasted TXT unchanged while checking syntax, address prefixes and policy endings.
A direct-term count highlights a crowded top-level record without mistaking it for the full SPF lookup limit.
Inventory every real sending source first. The default ~all is a draft policy, not a ready-to-publish recommendation for a domain with unlisted senders.
They produce fail, softfail and neutral respectively when an all mechanism matches. +all passes every sender and is flagged as risky.
RFC 7208 limits DNS-triggering terms during one evaluation to ten across nested includes and redirects. This page reports only visible top-level terms, so an include can increase the real cost.
Add the resulting value as one TXT record at the sending domain in your DNS provider. Keep any required strings inside that same record.
A domain should have one SPF TXT policy. Multiple matching SPF records cause a permanent error; this offline tool cannot detect records already published.
Still have an SPF policy question?
Return to the SPF record generator to adjust ordered sources or paste a current TXT value before publishing.