All free tools

Build one SPF record.

Combine your existing SPF rules and the services you use into a proposed DNS record.

Free. No account required. Your DNS is never changed.

Pasted records are processed in this browser. “Load published SPF” and “Check lookup impact” query Google Public DNS, which receives the queried names and your IP address. Records and edits are not saved. Privacy details.

Put each complete record on its own line, or leave blank to start a new record. Include the v=spf1 prefix. Quoted DNS TXT chunks are accepted on one line.

Add an email provider

Select only services you use. Confirm the required record and sending domain in each provider’s instructions.

Other rules and final result

One include:, ip4: or ip6: rule per line. Replace example values with the addresses supplied by your provider.

A different final rule changes the result for unmatched senders. This tool blocks open +all policies and rules that need a manual review.

Example: merge two SPF records

These two example records allow different fixed sending IPs and both end with ~all. Combining the intended rules gives one SPF policy. These documentation addresses are examples, not values to publish.

BeforeProposed
v=spf1 ip4:192.0.2.10 ~all
v=spf1 ip4:198.51.100.20 ~all
v=spf1 ip4:192.0.2.10 ip4:198.51.100.20 ~all

The proposed example has 0 DNS-querying terms. Real provider includes can add nested dependencies, so their lookup impact must be checked separately.

Before publishing

SPF applies to the SMTP return-path domain, which can differ from the visible From address. Confirm the services you use and their setup instructions, then publish one SPF TXT record at the correct name. Recheck it after saving.

This planner handles static, pass-qualified include, IP, a and mx rules. It preserves their order and does not rewrite redirects, modifiers, macros, ptr, exists or non-pass rules. Lookup counts are potential DNS-querying terms, not a test of a particular message or a guarantee of delivery.

Rule handling follows RFC 7208.