SPF Flattener
Resolve the entire include chain for a domain's SPF record and inline every authorized IP address into a single record, dropping the DNS-lookup count to avoid PERMERROR.
Workflow
Run check
Inspect a live record
Results are generated on demand so you can verify the current public configuration.
Why flatten an SPF record?
RFC 7208 caps SPF evaluation at 10 DNS lookups. Each include, a, mx, ptr, exists, and
redirect counts. Once you exceed the limit, receivers return a PERMERROR and treat SPF as
failing. Flattening inlines the resolved IP addresses so the lookup count drops, usually to
zero.
What is the trade-off?
A flattened record is static. When a sending provider changes its IP addresses, your record
no longer matches and legitimate mail can fail SPF. Treat flattening as a periodic
maintenance task, not a one-time fix, and watch the record length so it stays within the
512-byte DNS response limit.
What is SPF flattening? +
Flattening replaces include: mechanisms with the actual ip4 and ip6 addresses they resolve to. This removes the DNS lookups those includes cost, so the record stays under the 10-lookup limit that triggers PERMERROR.
Is this a one-time conversion? +
Yes. This tool produces a flattened record once. It does not write DNS or auto-update. Because provider IPs change, re-run the flattener periodically and republish the record when your senders change addresses.
What happens to a, mx, ptr, exists, or macro mechanisms? +
Mechanisms that cannot be reduced to static IPs (a, mx, ptr, exists, redirect, and macros) are kept in the flattened record exactly as they were, never silently dropped. They are listed separately so you can decide how to handle them.