Skip to content

Our SPF record returns permerror, too many DNS lookups

RFC 7208 allows at most 10 DNS lookups per SPF evaluation. Each include, a, mx, ptr, exists counts, including nested includes. Above that limit SPF breaks with permerror, which many receivers treat as fail.

Try this first

  1. 1Count includes with an SPF validator like dmarcian SPF Surveyor or Mailhardener. It shows the whole tree including recursive lookups inside _spf.google.com and similar.
  2. 2Remove includes that are no longer in use. Old ESPs, a previous CRM, a marketing tool you stopped using: those often linger in SPF.
  3. 3Replace large includes with SPF flattening via a service that refreshes IP ranges, for example dmarcian, autospf, or mxtoolbox flattening. Don't flatten by hand because Google and Microsoft IP ranges change.
  4. 4Optionally split send paths: marketing on a subdomain like news.yourdomain.com with its own SPF, transactional on the apex.
  5. 5Verify with dig txt yourdomain.com and a lookup counter that you sit under 10. Wait for TTL before retesting.

When to bring us in

If you can't get under 10 without dropping important senders, a redesign of the mail flow is needed. An hour of drawing this together avoids flatten-on-flatten.

See also

None of the above fits?

Describe your situation below. We pass your input plus the steps you already saw to our AI and return tailored next-step advice. If it's too risky to DIY, we'll say so.

Who are you?

For the AI question we need your email and company, so we can follow up if the AI gets stuck, and to prevent abuse.

Limited to 2 questions per hour and 5 per day, kept lean so the AI stays useful. For more, contacting us directly works better for you and us.

Or skip the DIY entirely

Our Managed IT clients do not look these things up. One point of contact, a fixed monthly price, resolved within working hours.