163 domains enforce DMARC on top of an SPF record that cannot be evaluated

We expanded the complete SPF tree of the top 10,000 domains and counted DNS lookups the way a receiving mail server does. 163 exceed the limit that makes SPF fail. 104 of them publish an enforcing DMARC policy regardless.

7,279mail-handling domains analysed
163exceed the 10-lookup SPF limit
104of those enforce DMARC anyway
33.8%of DMARC adopters enforce nothing

Method, first

Everything below is public DNS data. You can reproduce any single row with dig, and the aggregate figures with the tool described here.

What we are not claiming. A domain over the lookup limit is not necessarily failing to deliver mail today. Receivers vary in how strictly they apply PERMERROR, and DKIM alone can satisfy DMARC. The claim is narrower and firmer: these records cannot be evaluated as written, so SPF is contributing nothing, and the domain is relying on DKIM alignment without necessarily knowing it.

Adoption is high. Enforcement is not.

Among mail-handling domains, 92.5% publish SPF and 81.8% publish DMARC. Those are healthy numbers, and considerably better than the picture before Google, Yahoo and Microsoft began requiring authentication from bulk senders. But publication is not protection.

Among the 5,956 domains publishing DMARC
Policy stateDomainsShare
p=none — monitoring only, blocks nothing1,61327.1%
p=quarantine — spoofed mail sent to spam1,77629.8%
p=reject — spoofed mail refused2,56043.0%
No rua= address — receives no reports78413.2%
Enforcing nothing — p=none or no reports2,01533.8%

The last row is the one that matters. A third of the domains that have "done DMARC" are in a state where it does no work. 382 of them publish p=none and no reporting address — a record that neither blocks anything nor tells anyone what is happening. It exists purely to satisfy a checkbox.

p=none with no rua is the email-security equivalent of an unplugged smoke alarm. It passes inspection.

The lookup limit

RFC 7208 allows an SPF evaluation ten DNS-querying mechanisms, counted across the entire chain of nested includes. Exceed it and the result is PERMERROR. SPF does not fail open — a receiver treats the record as unusable.

This is invisible to the tools most people use, for a simple reason: checking whether an SPF record exists costs one query, while counting its true cost means recursively resolving every include. Here is the distribution across the 6,735 mail-handling domains that publish SPF:

0–22,55838.0%
3–51,95329.0%
6–71,11916.6%
8–969010.2%
102523.7%
11+1632.4%

DNS lookups required to evaluate the record, across 6,735 mail-handling domains publishing SPF. Bars scaled to the largest band.

163 domains (2.4%) are over the limit. A further 252 sit exactly on it, meaning the next SaaS tool anyone signs up for breaks SPF. And 1,105 domains (16.4%) are at eight or more — close enough that the failure is a matter of time rather than chance.

Prior work, and how this differs. The over-limit population has been measured before, at far greater scale: DMARCguard's SPF Supply Chain Study (April 2026) scanned 5,499,028 domains and found 4.8% of SPF-enabled domains over the limit. Our 2.4% is not a contradiction of that figure — it is what you would expect from a corpus restricted to the top 10,000, where domains are more actively maintained. Read together, the two numbers say something useful on their own: the long tail is roughly twice as broken as the head. What that study did not do, and what the rest of this page is about, is ask which of those domains are enforcing DMARC on top of a record that cannot be evaluated.

The failure mode is what makes this worth attention. Nobody publishes an eleventh include deliberately. It happens when marketing adds a newsletter platform, or support adds a helpdesk, and the record quietly crosses a threshold nobody is watching. There is no error, no bounce, no alert. The record still looks fine to every tool that only asks whether it exists.

The intersection

The finding we did not expect: 104 of the 163 over-limit domains publish an enforcing DMARC policy — 50 at p=reject and 54 at p=quarantine. 25 of them additionally end their SPF record in -all, the strictest available setting.

This is the part we could not find measured anywhere. Studies of the lookup limit count the domains that are over it; studies of DMARC count adoption and policy. Crossing the two is what turns a configuration error into a ranked list of who is actually exposed — because an over-limit domain at p=none has a latent problem, while an over-limit domain at p=reject has a live one.

This is a specific and self-defeating combination. The organisation has done the difficult, deliberate work of turning enforcement on — which usually means someone understood the risk and argued for it — while the SPF half of the mechanism silently returns PERMERROR. Authentication rests entirely on DKIM alignment, and almost certainly nobody has been told.

Highest lookup counts observed
DomainLookupsDMARC policy
meesho.com20p=reject
mobilityware.com18p=none
pubmatic.com17p=none
robinhood.com17p=quarantine
bankbazaar.com17p=reject
moengage.com16p=reject
mk.ru15p=reject
applovin.com14p=reject
gitlab.com13p=reject · SPF ends -all
who.int13p=reject · SPF ends -all

These are named so the finding is checkable, not to single anyone out — this is an accumulation problem that afflicts organisations precisely because they use many tools, and it is genuinely easy to miss. Verify any row with dig +short TXT <domain> and follow the includes.

Enforcement drops as you go down the ranking

Adoption of SPF is essentially flat across the ranking — everyone has a record. What changes is whether the record does anything.

Mail-handling domains by rank band
Rank bandDomainsSPFDMARCp=reject
1–1,00070292.9%88.3%57.3%
1,001–5,0002,82692.4%82.6%45.1%
5,001–10,0003,75192.6%80.0%38.4%

SPF adoption varies by half a percentage point across the whole range. Full enforcement varies by nineteen. Publishing a record is now table stakes; finishing the rollout is what separates the top of the list from the rest.

Two vendors carry most of the ecosystem

57.2% of mail-handling domains authorise Google Workspace or Microsoft 365. The mean domain authorises 1.5 identifiable third-party senders.

Third-party senders authorised, of 7,279 mail-handling domains
SenderDomainsShare
Google Workspace2,65936.5%
Microsoft 3651,74924.0%
Amazon SES1,00813.8%
Zendesk81811.2%
SendGrid6388.8%
Salesforce6318.7%
Proofpoint5067.0%

Smaller findings

If you want to check your own

The checker on the front page runs the same engine used for this study, in your browser, against public DoH resolvers. Nothing is sent to us and nothing is stored. It expands your full SPF tree and gives you the real lookup count.

Data

The complete aggregate dataset behind every figure on this page is available as report.json. Corrections are welcome and will be published — if a number here is wrong, we would rather know.