What this builds
An SPF record is one TXT record on your domain that lists every server allowed to send email as that domain. Receiving servers look it up and compare the sending server with the list. This generator writes that record for you: tick the services you send with, add your own servers if you have any, pick how strict the ending is, and copy the result.
Everything is built in your browser. If you type a domain that already has SPF, the page asks our checker for the current record once and fills the form from it, so you add to what is there instead of starting over.
One record, not two
A domain may have exactly one SPF record. When a second service asks you to "add an SPF record", it means add its include: to the record you already have. Two records starting with v=spf1 make receivers return a permanent error, and your mail fails SPF everywhere. Publish the value from this page in place of the old record.
If your domain has two records today, type the domain: the generator reads both and builds one record with every sender from each.
Services that need no include
Some services check SPF against their own return-path domain, not yours, so their documentation says an include: on your main domain does nothing for them and only costs a lookup. You set them up with the DKIM and return-path (CNAME) records they give you instead: SendGrid (with automated security on), Postmark and SparkPost. For any other service, follow its own setup page.
Ackuna is listed with include:amazonses.com because that is the record the Ackuna console gives you for a sending domain. It costs one lookup.
The 10-lookup limit
Each include:, a, mx and exists: costs a DNS lookup, and an include can pull in more lookups of its own. SPF allows 10 in total; above that the whole record fails. The generator counts the lookups the record itself needs, which is the minimum. After you publish, run the SPF checker to see the full count with every nested include. ip4: and ip6: entries are free.
How to publish it
- Copy the value from the result box.
- Open your DNS provider (Cloudflare, GoDaddy, Namecheap, Route 53, your registrar…) and find the TXT records of your domain.
- Edit the existing SPF record if there is one, and replace its value. Otherwise add a TXT record with host
@(some providers want the domain name or leave the host empty). - Save and wait for DNS to update, usually a few minutes to an hour.
- Check it with the SPF checker. The "Check after publishing" button opens it with your domain filled in.
