SPF Record Generator
Related tools
Fields marked * are required.
Related reading
- SPF Flattening: How to Beat the 10-Lookup Limit Without Breaking EmailToo many DNS lookups in your SPF record triggers PermError and sends legitimate mail to spam. Learn how SPF flattening works, when to use it, and its risks.
- SPF, DKIM, and DMARC: A Practical Guide to Email Authentication and DeliverabilityHow SPF, DKIM, and DMARC work together to prove your mail is genuine, keep it out of spam, and stop spoofing of your domain. A step-by-step setup guide.
Frequently asked questions
- How do I use the SPF Generator?
- In single-record mode, add a mechanism row for each mail source (include, ip4, ip6, a, mx or exists), fill in its value, and pick an -all qualifier; the finished v=spf1 record builds live for you to copy. In multiple-record mode, paste your existing SPF records and enter your domain, and the tool merges them and either keeps one record, splits it into a parent/child chain, or points you to flattening.
- What is an SPF record?
- SPF (Sender Policy Framework) is a single TXT record starting with v=spf1 that lists which servers are allowed to send email for your domain. Receiving mail servers check it to decide whether a message really came from an authorized source.
- Why does a correct SPF record matter?
- SPF helps stop spammers from forging your domain and is one of the checks that keeps your legitimate mail out of spam folders. It is also a foundation for DMARC alignment, so a broken or missing SPF record can quietly hurt deliverability.
- What does the -all qualifier at the end mean?
- The final all mechanism sets the policy for senders not listed: -all is a hard fail (reject), ~all is a soft fail (accept but mark suspicious), ?all is neutral, and +all allows anything and should never be used. Most domains should use -all or ~all.
- Why do I get a lookup or length warning?
- SPF allows at most 10 DNS lookups (include, a, mx and exists each count), and a record over 512 bytes usually needs splitting; the generator flags both. When you exceed the 10-lookup limit, splitting will not help and you must flatten includes into IP addresses instead.