7 min read By Excello Mail Team

The SPF Time Bomb in Your SaaS Stack: How the 10-Lookup Limit Silently Kills Email Deliverability

RFC 7208 caps SPF evaluation at 10 DNS lookups. Most organizations hit that ceiling without knowing it. Here is what happens when they do, why the classic fix breaks, and what a modern email stack actually requires.

Every organization that has grown its software stack over the past few years carries a potential deliverability fault line inside a DNS record most people never look at. The SPF record, a short TXT entry that authorizes which servers are allowed to send email on behalf of your domain, was designed for a simpler era. RFC 7208, the standard that governs SPF, imposes a hard limit of 10 DNS mechanism lookups per evaluation. In 2026, with the average mid-sized organization running Microsoft 365, a CRM, a marketing platform, a transactional email service, a customer support tool, and several more SaaS applications that all send email bearing the company domain, that limit is not a theoretical edge case. It is a trap that teams walk into every time they provision a new tool.

What the 10-Lookup Limit Actually Means

When a receiving mail server checks whether an incoming message is authorized under the sender’s SPF policy, it starts at the published SPF record and follows every include:, a, mx, and redirect= mechanism it encounters. Each of those mechanisms may point to another DNS record, which may contain further include: directives, each of which triggers another lookup. RFC 7208 caps the total number of these lookups at 10 for any single SPF evaluation.

If evaluation reaches the 11th lookup, the server does not simply ignore the extra mechanisms. It returns a PermError, which means “this SPF record is permanently broken.” The message does not pass SPF. It does not softfail. It errors out entirely.

Under DMARC, a PermError is treated as an SPF failure. If DKIM is not also passing and aligned, the message fails DMARC. If your DMARC policy is p=quarantine or p=reject, that message goes to spam or is blocked outright, even though it was sent by your own authorized infrastructure.

How Modern SaaS Stacks Hit the Limit

The accumulation happens gradually and invisibly. Consider a realistic sending inventory for a company with 200 employees:

  • include:spf.protection.outlook.com for Microsoft 365 (1 lookup, but resolves to additional mechanisms)
  • include:_spf.google.com added when someone integrated Google Workspace for a subsidiary
  • include:salesforce.com for the CRM
  • include:mcsv.net for Mailchimp
  • include:sendgrid.net for transactional email
  • include:amazonses.com for a developer integration
  • include:_spf.intuit.com because the accounting team sends invoices via QuickBooks
  • include:zendesk.com for the support platform

That is eight top-level includes. Each of those includes resolves to its own record, which may chain further. Microsoft’s SPF record alone can consume four to six lookups depending on the current state of their infrastructure. The count climbs past 10 well before the list is complete.

The critical detail is that the failure is silent. There is no bounce notification that says “your SPF record has too many lookups.” The sending server delivers the message, the receiving server evaluates SPF, gets a PermError, and records an authentication failure. If your DMARC policy is at enforcement, recipients stop seeing your email. If your policy is p=none, you may never know it is happening unless you are actively reading aggregate reports.

Why SPF Flattening Works Until It Doesn’t

The traditional remedy for the 10-lookup problem is SPF flattening: resolving every include: chain down to raw IP addresses and writing those IP addresses directly into the SPF record as ip4: and ip6: mechanisms. Because IP-literal mechanisms consume zero DNS lookups, a flattened record can authorize dozens of sending services while staying under the limit.

The problem is that cloud email providers rotate their sending IP addresses continuously. When Google adds new sending infrastructure, when SendGrid expands a regional data center, when Microsoft adds capacity, the IP addresses in the flattened record become stale. Legitimate email from those new IPs starts failing SPF authentication. The flattened record that fixed the lookup problem has now created an IP-staleness problem, and the failure mode is identical: silent authentication failures, degraded deliverability, and potential DMARC enforcement consequences.

Manual flattening that is not continuously refreshed often creates worse outcomes than the problem it solved.

The Modern Approaches That Actually Work

Three approaches handle the lookup limit reliably in 2026.

Subdomain delegation is the cleanest structural fix. Instead of sending marketing email from @yourcompany.com, you send it from @mail.yourcompany.com or @em.yourcompany.com. Each subdomain carries its own SPF record with its own 10-lookup budget. The root domain’s SPF record stays lean, and you can onboard additional sending services on subdomains without touching the primary record. DMARC can be configured to cover subdomains explicitly, and DKIM signing with the subdomain satisfies alignment.

Automated SPF flattening services track the IP ranges published by your included providers and update the flattened record automatically whenever a provider changes their infrastructure. This eliminates the staleness problem that makes manual flattening dangerous. The record stays within the lookup limit, and legitimate mail continues to authenticate correctly.

SPF macros allow for highly dynamic SPF policies that are evaluated per-message rather than globally, but they require specific receiving-side support and introduce complexity that makes them impractical for most organizations without dedicated email infrastructure expertise.

The DMARC Connection That Most Teams Miss

The relationship between the SPF lookup limit and DMARC enforcement is where this issue becomes most consequential for 2026.

Organizations that have reached p=quarantine or p=reject policies and are actively protecting their domain identity against spoofing may have unknowingly created an SPF PermError condition at some point after reaching enforcement. A PermError caused by a newly added SaaS include will cause DMARC to fail for every message from that domain, not just spoofed ones. The protection that was carefully built through the enforcement journey is now misfiring on legitimate mail.

The EasyDMARC 2026 DMARC Adoption Report found that only around 9% of domains combine an enforcement policy with active aggregate reporting. Aggregate reporting is exactly the mechanism that would surface a sudden increase in SPF failures caused by a lookup limit breach. Organizations that moved to enforcement and then stopped monitoring their aggregate reports are flying blind, with no visibility into whether their own legitimate senders are passing authentication.

The Valimail 2026 State of DMARC Report reinforced this: DMARC awareness has reached 78%, enforcement sits at 42%, and 2.5 billion suspicious emails were tracked by Valimail in 2025 alone. That tracking depends on organizations maintaining functioning authentication infrastructure, which requires ongoing attention to exactly this kind of SPF hygiene.

A Practical Audit You Can Run Today

Diagnosing an SPF lookup limit problem takes less than five minutes. Use any publicly available SPF lookup tool to evaluate your domain’s SPF record. Most tools will not only count your current lookups but will show you the full resolution tree, identifying which include: chains are consuming the most lookups and whether any have already pushed you past the limit.

If you find a PermError, the immediate step is to identify which include is pushing you over the limit. In most cases, it is a recently added provider. Removing or relocating that provider to a subdomain is usually enough to bring the total below 10 while you implement a longer-term solution.

If you are at exactly 10 lookups, you are one new include away from a PermError. Treat that as an urgent infrastructure problem, because the next SaaS tool your team provisions could be the one that breaks your email.

What Continuous Monitoring Provides

The SPF lookup limit is not a problem you solve once. It is a condition you manage continuously, because your sending infrastructure evolves constantly. New tools get added. Providers change their record structures. Acquisitions bring in new domains. A monitoring capability that watches your authentication metrics across all sending sources will surface a lookup limit breach within hours of it occurring, long before it produces customer-visible deliverability failures.

The organizations that avoid this trap are not doing anything particularly sophisticated. They have automated the monitoring of their aggregate reports and set up alerting for sudden changes in authentication pass rates. When a new SaaS include pushes them over the limit, they see the failure spike before customers notice missing invoices or support tickets.


SPF hygiene, DMARC monitoring, and aggregate report analysis are not separate problems. They are the same ongoing task. Start your free account at Excello and keep your entire email authentication stack healthy.