Who uses what for email DAILY

Mailbox providers and ESPs across the Tranco top-1M — snapshot of 2026-07-22.

667 580
Domains with MX
626 173
Domains with SPF
462 791
Domains with DMARC
46.9%
DMARC enforced

What you're looking at. Headline numbers for the analysed Tranco snapshot: how many domains publish each kind of email-related DNS record, and what share of DMARC publishers actually enforce their policy (quarantine/reject). Higher MX vs SPF gap = more domains receive mail than authorise sending; higher SPF vs DMARC gap = SPF adopted but no policy/feedback enforcement yet.

Key findings — 2026-07-22

Each statement is recomputed daily from the full dataset — cite freely, a link to this page is appreciated. Machine-readable version: api/latest.json · llms.txt. Looking for one domain? Domain lookup — mailbox provider, ESPs and DMARC policy of any top-10k website.

Trend — last 30 day(s) · KPIs

Top mailbox providers

What this block shows. Where each domain hosts incoming mail — derived from its primary MX record (lowest mx_preference). This is the receiving side of email: Google Workspace, Microsoft 365, Zoho, on-prem Exchange, etc. "Generic / unmatched" buckets are common mail.* / mx*.* hostnames we couldn't attribute to a specific provider; "Unknown / Other" is everything else. Note: Cloudflare Email Routing also appears in the ESP table below — that is the same service observed through two different record types (MX here, SPF there), not a double count of domains.

#Mailbox providerDomainsShare of MX-having domains
1Self-Hosted →151 06022.63%
2Google Workspace →145 12221.74%
3Microsoft 365 →111 88716.76%
4Unknown / Other →49 8777.47%
5Generic / unmatched (mx*.*) →17 1402.57%
6Proofpoint →12 6601.9%
7Generic / unmatched (mail.*) →11 6721.75%
8Yandex 360 →11 0061.65%
9Cloudflare Email Routing →10 7351.61%
10Mimecast →10 1291.52%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11Hostinger →7 8651.18%
12Zoho Mail →6 9051.03%
13Namecheap Email Forwarding →6 6981.0%
14QQ Mail (Tencent) →5 5740.83%
15GoDaddy →5 0720.76%
16OVH Mail →4 7970.72%
17Amazon WorkMail →4 6710.7%
181&1 IONOS →4 0700.61%
19Mail.ru for Business →3 5890.54%
20Barracuda →3 5410.53%
21Proofpoint Essentials →2 8960.43%
22Jellyfish (Namecheap) →2 7990.42%
23SpamExperts (SolarWinds) →2 6860.4%
24Cisco IronPort →2 6030.39%
25Beget (RU) →2 3930.36%
26Mailgun (inbound) →2 3020.34%
27Rackspace Email →2 2550.34%
28Alibaba Mail (China) →2 1000.31%
29Zoho Mail (EU) →1 8250.27%
30Hosted Email (Rackspace/IONOS) →1 7350.26%
🏠 Open Providers portfolio → cards with country, blurb, sparkline & TLD breakdown — click any provider name above to drill into a detail page

Trend — last 30 day(s) · Top mailbox providers

Long-tail / Unknown MX — the rest of the internet

What this block shows. The slice of domains whose mailbox cannot be attributed to a named provider — regional hosters, self-built Postfix/Exim, corporate gateways, niche ESPs. Researchers ask for this specifically because it captures the deliverability reality outside the Google / Microsoft monoculture. The detailed report drills down into Top-1000 most common unmatched hosts, 100 hand-picked curiosities (longest one-off names) and a TLD breakdown.

Unknown / Generic share
11.94%
79 718 domains
Unique unmatched MX hosts
36 794
individual hostnames in the long tail
Self-hosted
22.66%
151 246 domains running their own MX
📋 Open detailed long-tail report →·⬇ Download top-1000 unmatched MX (CSV)·⬇ Download 100 curiosities (CSV)

Top ESPs / mass-mailing services

What this block shows. Outbound mass-mailing platforms each domain authorises in its SPF record — the marketing-automation, transactional-email and customer-engagement layer (SendGrid, Mailchimp, Mailgun, Klaviyo, HubSpot, Salesforce Marketing Cloud, etc.). One domain can use several ESPs, so percentages sum to more than 100% of SPF-publishing domains.

#ESPDomainsShare of SPF-publishing domains
1Amazon SES →38 7266.18%
2SendGrid (Twilio) →29 7174.75%
3Mailgun →25 7354.11%
4Zendesk →24 0123.83%
5Mailchimp →23 0693.68%
6Mandrill →21 0123.36%
7HubSpot →19 8283.17%
8Salesforce →16 3372.61%
9Mailjet (Sinch) →13 3302.13%
10Cloudflare Email Routing →11 3391.81%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Brevo (ex-Sendinblue) →9 0221.44%
12Mimecast →8 8611.42%
13MailerSend →8 0621.29%
14Namecheap Forwarding →6 9651.11%
15MailChannels →6 7201.07%
16Proofpoint →5 8390.93%
17Elastic Email →4 4610.71%
18Constant Contact →3 6350.58%
19Unisender (RU) →3 6240.58%
20Campaign Monitor →3 5210.56%
21Marketo (Adobe) →3 2700.52%
22Zoho Campaigns →3 2330.52%
23Emsd1 (transactional) →2 9960.48%
24Postmark →2 9520.47%
25SendPulse →2 8990.46%
26Exclaimer (signatures) →2 6960.43%
27SparkPost →2 6670.43%
28Zoho ZeptoMail →2 6600.42%
29Help Scout →2 3110.37%
30Salesforce Marketing Cloud →2 2100.35%
📮 Open Mailing services portfolio → all detected ESPs with descriptions, country, sparklines — click any ESP above to drill into a detail page

Trend — last 30 day(s) · Top ESPs

SaaS senders (Notion, Slack, Zendesk, Atlassian, Stripe…)

What this block shows. SaaS apps that send mail FROM a customer's domain on the customer's behalf — productivity, support, payments, HR, e-commerce and other business apps appearing as include: targets in the customer's SPF. Distinct from ESPs (mass-mailing platforms) and mailbox providers (where the inbox lives).

#SaaS appDomainsShare of SPF-publishing domains
1Shopify →5 4640.87%
2Pardot (Salesforce) →4 8950.78%
3CodeTwo Email Signatures 365 →4 4330.71%
4KnowBe4 →3 4970.56%
5Statuspage (Atlassian) →2 0810.33%
6Trustpilot →1 8680.3%
7Atlassian (Jira/Confluence) →1 8340.29%
8Firebase (Google) →1 8330.29%
9BigCommerce →1 4950.24%
10Lark / Feishu →1 3080.21%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11Sage Intacct →1 1390.18%
12NetSuite (Oracle) →1 1330.18%
13Qualtrics →1 0980.18%
14Oracle Cloud Email →1 0770.17%
15WordPress.com / WP Cloud →9690.15%
16Docebo (LMS) →9220.15%
17Oracle Cloud →8420.13%
18One.com (DK hosting) →7940.13%
19Zoho Books →7080.11%
20AFAS →6640.11%
21Greenhouse →6200.1%
22SAP SuccessFactors →5900.09%
23PayPal Braintree →5840.09%
24ClickDimensions →5760.09%
25UKG / UltiPro →5510.09%
26Autotask (ConnectWise) →4730.08%
27FormAssembly →4580.07%
28TOPdesk →4550.07%
29Freshservice (Freshworks) →4460.07%
30ConnectWise →4430.07%
📧 Open SaaS/ESP senders portfolio → SaaS apps sending FROM customer domains — click any SaaS name above for detail

Trend — last 30 day(s) · Top SaaS senders

DMARC adoption

What this block shows. The policy each DMARC-publishing domain advertises at _dmarc.<domain>: none = monitor only, quarantine = mark as spam on fail, reject = drop on fail, invalid = a syntactically broken record. "Enforced %" treats only quarantine / reject with pct=100 as actually enforcing.

Trend — last 30 day(s) · DMARC enforced %

7d ago▼ -0.04%30d ago▼ -0.51%

Trend — last 30 day(s) · DMARC policies

Top 100 most-used DMARC records (verbatim)

The literal record string copied verbatim from DNS — useful to spot copy-pasted "starter" policies and identify reporting endpoints (the rua= / ruf= tags) shared across many domains.

#DMARC recordDomains
1v=DMARC1; p=none;58 201
2v=DMARC1; p=none32 862
3v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com9 016
4v=DMARC1; p=quarantine;5 014
5v=DMARC1; p=quarantine4 016
6v=DMARC1; p=reject;3 892
7v=DMARC1;p=none;3 770
8v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;3 556
9v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com3 104
10v=DMARC1; p=quarantine; adkim=s; aspf=s3 056
11v=DMARC1; p=reject2 881
12v=DMARC1; p=none; aspf=r; adkim=r;2 401
13v=DMARC1; p=quarantine; pct=1002 378
14v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;2 117
15v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; ruf=mailto:dmarc@mailinblue.com!10m; rf=afrf; pct=100; ri=864002 102
16v=DMARC1;p=none1 805
17v=DMARC1; p=none; aspf=r; sp=none1 741
18v=DMARC1; p=none; adkim=r; aspf=r;1 536
19v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;1 458
20v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc.report@axa.com;1 408
21v=DMARC1;p=quarantine;pct=100;fo=11 264
22v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email1 252
23v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email1 248
24v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=864001 234
25v=DMARC1;p=reject;1 223
Show rows 26 – 100
#DMARC recordDomains
26v=DMARC1; p=none; sp=none1 049
27v=DMARC1; p=none; sp=none;1 021
28v=DMARC1; p=reject; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;1 009
29v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email;970
30v=DMARC1; p=reject; rua=mailto:report@dmarc.amazon.com; ruf=mailto:report@dmarc.amazon.com884
31v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com883
32v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s812
33v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email760
34v=DMARC1; p=quarantine; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com736
35v=DMARC1; p=reject; pct=100733
36v=DMARC1; p=none; pct=100733
37v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net; adkim=r; aspf=r;675
38v=DMARC1;p=quarantine;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400674
39v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com667
40v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com614
41v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:ewai10d2@ag.eu.dmarcian.com; ruf=mailto:ewai10d2@fr.eu.dmarcian.com608
42v=DMARC1; p=none; sp=none; rf=afrf; pct=100; ri=86400556
43v=DMARC1; p=quarantine; pct=100;540
44v=DMARC1;p=quarantine517
45v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email;516
46v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com511
47v=DMARC1; p=reject; pct=100;464
48v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email;438
49v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s419
50v=DMARC1; p=none; sp=none; adkim=r; aspf=r395
51v=DMARC1; p=none; adkim=r; aspf=r379
52v=DMARC1; p=reject; adkim=s; aspf=s;369
53v=DMARC1; p=none; pct=100;366
54v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1348
55v=DMARC1;p=reject326
56v=DMARC1324
57v=DMARC1; p=reject; adkim=s; aspf=s320
58v=DMARC1;p=quarantine;314
59v=DMARC1; p=none; aspf=r; adkim=r312
60v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;311
61v=DMARC1;p=reject;fo=1;rua=mailto:dmarc_rua@emaildefense.proofpoint.com;ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com309
62v=DMARC1; p=reject; sp=none; rf=afrf; pct=100; ri=86400307
63v=DMARC1; p=none; fo=1306
64v=DMARC1; p=reject; sp=reject; pct=100; fo=1; ri=3600; rua=mailto:dmarcrecord@gmail.com; ruf=mailto:dmarcrecord@gmail.com;305
65v=DMARC1; p=none; rua=mailto:dmarc@smtp.mailtrap.live; ruf=mailto:dmarc@smtp.mailtrap.live; rf=afrf; pct=100292
66v=DMARC1; p=reject; rua=mailto:tnoff9hr@ag.eu.dmarcadvisor.com; aspf=s; adkim=s;280
67v=DMARC1;p=none;sp=none;pct=50;adkim=r;aspf=r;275
68v=DMARC1; p=none; rua=mailto:mailauth-reports@google.com269
69v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400269
70v=DMARC1;p=none;pct=100267
71v=DMARC1; p=reject; rua=mailto:zsrbf6su@ag.eu.dmarcadvisor.com;264
72v=DMARC1; p=quarantine; rua=mailto:rua@dmarc.brevo.com248
73v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;fo=1247
74v=DMARC1;p=none;rua=mailto:dmarc_report@service.aliyun.com247
75v=DMARC1; p=quarantine; adkim=s; aspf=s;235
76v=DMARC1; p=none; rua=mailto:rua-mpse@mpub.ne.jp229
77v=DMARC1; p=quarantine; adkim=r; aspf=r225
78v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net;220
79v=DMARC1; p=none; rua=mailto:dmarc.rua@edrone.app; ruf=mailto:dmarc.ruf@edrone.app217
80v=DMARC1; p=none; sp=none; rua=mailto:dmarc-raports@dhosting.pl204
81v=DMARC1; p=reject; rua=mailto:zicaptxt@ag.dmarcian.com;201
82v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com200
83v=DMARC1; p=none; rua=mailto:dmarc@reporting.unisender.com198
84v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com198
85v=DMARC1;p=none;rua=mailto:rua@dmarc.brevo.com190
86v=DMARC1; p=reject; sp=reject186
87v=DMARC1;p=reject;pct=100;186
88v=DMARC1; p=quarantine; pct=100; rua=mailto:61e7fc8674b33@ag.eu.dmarcly.com; ruf=mailto:61e7fc8674b33@fo.eu.dmarcly.com; sp=quarantine; fo=1;185
89v=DMARC1; p=quarantine; pct=100; adkim=r; aspf=r183
90v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;180
91v=DMARC1; p=none; pct=100; rua=mailto:dmarc@fbl.optin.com;177
92v=DMARC1; p=quarantine; adkim=r; aspf=r;170
93v=DMARC1; p=quarantine; fo=1170
94v=DMARC1;p=none;pct=100;aspf=r;adkim=r;169
95v=DMARC1; p=quarantine; sp=none; pct=100; ri=86400168
96v=DMARC1; p=reject; rua=mailto:a@dmarcreports.facebook.com;166
97v=DMARC1; p=reject; sp=reject;165
98v=DMARC1; p=reject; pct=100; adkim=s; aspf=s164
99v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100163
100v=DMARC1; p=quarantine; sp=quarantine161
Is your domain one of them? More than half of DMARC-publishing domains enforce nothing — and most senders only find out from their open rates. Run a free inbox placement test: send a real message to our seed mailboxes at Gmail, Outlook, Yandex and Mail.ru and see where it lands — inbox, spam, or nowhere.
Test your deliverability →

Unmatched MX targets — top 100

What this block shows. The most popular MX hostnames our dictionary does not yet attribute to a named mailbox provider. Public list — these feed back into dictionaries/mx_providers.py for the next iteration so coverage keeps improving.

#MX targetDomains
1localhost382
2mx.services278
3mail237
4zonemx.eu198
5mail1.sbnation.com166
6mail.parktons.com154
7alltheemails.com145
8mx.email-messaging.com138
9mail.autoline.com.ua133
10mx2.z-ns.net132
11lbmx.bcc.gov.bd124
12~123
13uk.mx1.mailanyone.net120
14mxi.alpha-prm.jp119
15uk.mx2.mx25.net119
16uk.mx3.mailanyone.net117
17mx1.ticketsinbound.com116
18mx2.ticketsinbound.com112
19uk.mx4.mx25.net112
20s.mail.dcsaas.net111
21mx1d10.thinline.cz110
22mx1b20.thinline.cz110
23mailin.mx-hub.sk107
24mailin.mx-hub.cz105
25mailin.mx-hub.eu102
Show rows 26 – 100
#MX targetDomains
26se.mx1.mailanyone.net100
27se.mx2.mx25.net100
28cloudmail.auto-vision.ru96
29se.mx3.mailanyone.net96
30se.mx4.mx25.net95
31mx1.cleanmx.pt94
32smtp-fwd.wordpress.com94
33mx2.cleanmx.pt93
34mx.maxns.net91
35mx-backup.serveriai.lt88
36mailforward.dnsv.jp87
37mx1-dk.centerasecurity.dk85
38mx2-dk.centerasecurity.dk85
39mail2.recop.jp85
40amazon-smtp.amazon.com84
41mail.pickelhost.com81
42mx3-dk.centerasecurity.dk79
43mx01.1and1.fr78
44mx.aams4.jp78
45mx1.netim.net77
46mx2.netim.net77
47mx00.1and1.fr77
48sitemail.everyone.net77
49mail.global.frontbridge.com77
50mx01.1and1.es76
51void.blackhole.mx76
52mx-01.mail-forwarder.io76
53mx-0.aams4.jp75
54mx-1.aams4.jp75
55mx.vshosting.eu75
56mx-02.mail-forwarder.io74
57mx.sendcloud.org71
58mx1.email-cluster.com71
59mx2.email-cluster.com71
60mail-fr.securemail.pro71
61q01es.mail.s-web.de70
62q02es.mail.s-web.de70
63r01es.mail.s-web.de70
64r02es.mail.s-web.de70
65mx00.1and1.es69
66mail.mpcloud.net69
67failover1.email-cluster.com69
68mx2.emailarray.com69
69mxa.expediagroup.com68
70mxb.expediagroup.com68
71mx.spamfilter.io67
72mx.emailarray.com67
73mx1.nepal.gov.np67
74smtp-avas.seeweb.it66
75mx2.nepal.gov.np66
76mx6.kvnbw.de66
77mx7.kvnbw.de66
78mx8.kvnbw.de66
79mx9.kvnbw.de66
80smtp.faisco.cn65
81email.webglobe.cz65
82email2.webglobe.cz65
83antispam.korea.kr65
84usa.mx1.mailanyone.net64
85mx1.daouoffice.com64
86email3.webglobe.cz64
87email4.webglobe.cz64
88gmail22.gadmail.de64
89gmail23.gadmail.de64
90wmail22.gadmail.de64
91mx4.emailowl.com63
92usa.mx2.mx25.net63
93usa.mx3.mailanyone.net63
94usa.mx4.mx25.net63
95mail.vipmailservice.com63
96wmail23.gadmail.de63
97posta.mediacenter.hu62
98posta2.mediacenter.hu62
99posta4.mediacenter.hu62
100posta5.mediacenter.hu62

Unmatched SPF includes — top 100

What this block shows. The most popular SPF include: targets that don't match any known ESP, mailbox-as-sender, or SaaS pattern yet. Same feedback loop: top hits get added to dictionaries/esps.py or dictionaries/saas_senders.py.

#SPF includeDomains
1yunyou.top143
2_spf.edhost.eu125
3_spf.mail-neoserv.si119
4spf.mailii.org117
5dospf.simplepart.com117
6mlrcloud.com113
7_spf.exsilia.net112
8spf.pitcom.net112
9_spf.lh.pl111
10spf.greengeeks.net108
11spf.w4ymail.at108
12_spf.armada.it106
13spf.boldem.cz105
14spf-2248456.jmsend.com103
15spf.cesky-hosting.cz103
16spf.aams4.jp103
17send.k-crm.jp103
18spf.mailcamp.nl102
19spf.betrend.com102
20_spf.localservices.com.br102
21_spf.wpopt.net101
22outbound.smtp.wisestamp.net101
23spf.mijndomeinhosting.nl101
24spf.v6send.net101
25gateways.firstdata.com100
Show rows 26 – 100
#SPF includeDomains
26_spf.abcp.ru100
27_spf.octadesk.com99
28relay.guzelhosting.com99
29spf.spcloud.jp99
30spf.ssmx.net98
31fmx.etius.jp98
32amazon.com97
33_spf.presscloud.com97
34_spf.simpleviewinc.com96
35_spf.ogicom.pl95
36_spf.sendnode.com94
37mailii.org94
38_pmta2.antevenio.com94
39spf.satorimail.net94
40_spf.tld-mx.com93
41spf.symplicity.com93
42_spf.academicworks.com93
43verifymyfafsa.com93
44spf.emailfilter.io92
45mailing.eqs.com92
46_spf01.mykronos.com92
47mfg.siteprotect.com92
48spf.shopserve.jp92
49spf.host-ww.net91
50relay.thundermail.uk91
51usermail.zohocreator.com91
52smtp-cluster.plusvps.com91
53ofsys.com90
54spf.protection.outlook90
55_spf-dc10.sapsf.com90
56spf90
57senders.mailmasterplus.net90
58spf.qb-feedback.com89
59_spf.aid.no89
60eversrv.com88
61spf.chinaemail.cn88
62_spf.sent2email.com88
63spf.redpoints.com87
64_spf.shared-server.net87
65custmail.vdata.com87
66spf.sosafe.de86
67ciphr247.com86
68spfref.jackhenry.com86
69spf.w2solution.com86
70_spf1-aws.recop.jp86
71spf.qboxmail.com85
72spf.form.run85
73spf-us.appmail.granicusgovaccess.net85
74mailmailmail.net84
75spf.esvacloud.com84
76_spf.eemsg.mail.mil84
77mail.zohoanalytics.com83
78sender.zcsend.jp83
79spf2.nlk2.smtps.jp83
80_spf.herodesk-mails.io82
81_spf.firmstep.com82
82no-ip.com81
83spf.pantheon.io81
84universalspf.org81
85x.universalspf.org81
86spf.byway.it80
87_spf.postaffiliatepro.com80
88spf.zoner.fi80
89spf.filteredmx.net80
90spf.263xmail.com80
91spf.mlwrx.com79
92spf.gansend.com79
93relay.email-cluster.com79
94support.gov.sg79
95_spf.yourfilter.nl79
96spf.sabre.com78
97_spf.ungapped.io78
98_spf.saashr.com78
99spf.am.arara.com78
100spfv.global-mail.cn78

Methodology — how the numbers were produced

1. Data source

The dataset is the daily OpenINTEL forward-DNS Tranco snapshot (University of Twente / SURFnet / SIDN Labs). OpenINTEL queries the entire Tranco top-1M domain list daily for MX, TXT, NS, A, AAAA, SOA, CAA, DNSSEC and other records, publishing the results as Apache Parquet. For pre-2022 history we additionally use OpenINTEL's alexa source (the legacy Alexa top-1M list, retired 2023).

Cite: Roland van Rijswijk-Deij et al., "A High-Performance, Scalable Infrastructure for Large-Scale Active DNS Measurements", IEEE JSAC 2016.

2. Sample & cadence

Each report covers a single date — the latest OpenINTEL snapshot with <24h delay, typically ~700 k domains with MX records and ~620 k with SPF. The pipeline runs daily at 23:00 Europe/Moscow; each daily run produces an HTML report, a JSON summary, an updated time-series, and incremental updates to the domain registry (§ 12). No sub-sampling.

3. Mailbox provider classification

For each domain we read its MX RRset and pick the record with the lowest mx_preference as the primary mailbox host. The hostname of that primary MX is matched against an open regex dictionary (dictionaries/mx_providers.py, currently ~310 patterns). Specific patterns (e.g. .mail.protection.outlook.com) are tried first; generic fallbacks (mail.*, mx*.*) only after. Domains whose MX matches no rule are kept as "Unknown / Other" — never dropped — and exported in Unmatched MX targets for dictionary improvement.

4. ESP / SaaS / forwarder / gateway classification (SPF-based)

For each domain's apex SPF record (TXT starting with v=spf1) we extract every include: and redirect= target and resolve them against open classification dictionaries (ESPs, mailbox-as-sender, anti-spam gateways, forwarders, SaaS senders, DMARC vendors, NS providers, verification tokens).

Resolution order: PURE_ESP → MAILBOX_AS_SENDER → GATEWAYS → FORWARDERS → bare-apex substring fallback → SAAS_SENDERS substring iteration. Bare-apex derivation strips leading _spf., _spf-eu., spf., mail. prefixes from dict keys to catch subdomain variants (e.g. _spf.m1.websupport.sk → matches websupport.sk). Malformed includes (no dot, <4 chars) are filtered.

One domain may use several ESPs simultaneously, so ESP shares sum to more than 100% of SPF-publishing domains. Current SPF-include classification coverage: ~81.5% (up from ~38.5% baseline).

Limitation: "flattened" SPF (where include chains were replaced with raw IP ranges to fit the 10-lookup limit) is not detectable from DNS alone — those domains appear ESP-less even when an ESP is in fact used.

5. DMARC (deep)

For each domain we query the _dmarc.<domain> TXT record. Records starting with v=DMARC1 are parsed for:

  • p= (apex policy): none / quarantine / reject / invalid
  • sp= (subdomain policy)
  • pct= (rollout percentage)
  • rua= aggregate-report destinations → classified into vendor buckets (Postmark DMARC, Valimail, dmarcian, URIports, EasyDMARC, Red Sift, Proofpoint EFD, Agari/Fortra, …) using dictionaries/dmarc_vendors.py

A domain is counted as enforced if p=quarantine or p=reject with pct=100 (or pct absent — defaults to 100).

6. SPF mechanics & health

For every SPF record we additionally extract:

  • Final qualifier on the all mechanism: -all (hard fail), ~all (soft fail), ?all (neutral), +all (pass-everything — broken / dangerous), or missing
  • DNS lookup count (include:, redirect=, a:, mx:, exists:, ptr:) — each mechanism counts as 1 against the spec limit of 10. Records exceeding the limit return PermErr at recipients
  • Mechanism mix: include-only (modern), raw IP4/IP6 ranges only (legacy/flattened), mixed
  • Record byte length: percentiles to flag fragmentation risk (>450 B)

7. Email security maturity

Adoption of modern mail-security TXT records, parsed from the same OpenINTEL parquet:

  • MTA-STS: TXT at _mta-sts.<domain> with v=STSv1 — domain advertises required-TLS to its MX
  • BIMI: TXT at default._bimi.<domain> with v=BIMI1 — brand publishes a verified logo (requires p=reject)
  • TLS-RPT (SMTP TLS Reporting): TXT at _smtp._tls.<domain> with v=TLSRPTv1 — domain monitors TLS-failure reports
  • DKIM selectors: where the OpenINTEL scan includes *._domainkey.<domain> queries, well-known selectors (google, selector1/2, s1/s2, k1/k2/k3, mailo, mte1, …) are mapped to issuing ESPs

8. DNS provider classification

For each domain's NS RRset, every NS hostname is matched against a suffix dictionary (dictionaries/ns_providers.py) with patterns for Cloudflare, AWS Route 53, Azure DNS, Google Cloud DNS, GoDaddy, Akamai, NS1, UltraDNS, Yandex, DNSPod, Aliyun, OVH, Hetzner, Gandi, registrars, and others. A domain is assigned to its dominant NS provider; ties resolve to whichever pattern was matched first.

9. SaaS-via-verification-tokens

Many SaaS apps a domain is connected to never appear in SPF (because the SaaS doesn't send mail FROM the customer domain). To recover this signal we parse apex TXT records for verification tokens — google-site-verification=…, MS=…, atlassian-domain-verification=…, stripe-verification=…, plus ~70 other patterns in dictionaries/verification_tokens.py. This produces a complementary "SaaS density" metric and surfaces apps that the SPF-only view misses.

10. Email infrastructure modernity

Three additional TLS / IPv6 metrics:

  • IPv6-on-MX: MX hostname has at least one AAAA record
  • DANE / TLSA on MX: TLSA record at _25._tcp.<mx_host> (where the parquet includes TLSA queries)
  • CAA: any 0 issue … / 0 issuewild … record at apex; CAs aggregated into a market-share view (Let's Encrypt, DigiCert, Sectigo, …)

11. Cross-tabulations

  • Country × ESP heatmap: top-15 ccTLDs × top-15 ESPs, cell = % of country's SPF-publishing domains using ESP X. Surfaces regional ESP champions (Brevo / FR, Unisender / RU, MailerLite / LT, Akna / BR, Shoptet / CZ).
  • Mailbox × ESP combinations: stacked frequency of common stack pairings (Google Workspace + HubSpot, MS365 + Marketo, …).

12. Domain registry & identifiers

Every domain ever observed across snapshots is assigned a stable integer ID in /var/openintel-cache/registry/domains.sqlite3 (currently ~1.2 M domains). Reports reference domains by ID rather than embedding strings; clients resolve names from a single gzipped registry dump (/email-stats/domains.csv.gz, ~13 MB). This keeps per-report payloads compact, enables fast set-operation diffs across snapshots, and gives every domain a first-seen / last-seen timestamp.

13. Daily change-alerts feed

Each daily run computes a domain-level diff vs the previous scan and emits a change-feed at /email-stats/alerts.html (also as JSON + Atom). Detected events: ESP added/removed in SPF, DMARC policy upgrade/downgrade, primary-mailbox-provider change, SPF strict→soft regression, MTA-STS / BIMI first publication. Severity tag is good / bad / info.

14. Per-entity detail pages

The top-100 ESPs, top-100 SaaS senders and top-80 mailbox providers each have a dedicated detail page at /email-stats/detail/<kind>/<slug>.html showing KPI cards, a Chart.js sparkline (from history.json), TLD distribution and a sample of customer domains.

15. Tier breakdown

Each domain is assigned a tier from its Tranco rank: top-1k / top-10k / top-100k / top-1M / unranked.

16. Reproducibility & data hygiene

Every published report includes the exact OpenINTEL date, dictionary file hashes, and counts of unmatched MX hosts and SPF includes — so any reader can verify or reproduce the figures. Raw OpenINTEL parquet is downloaded into a temporary cache and deleted after analysis; only aggregated, non-redistributable counts are kept long-term (per OpenINTEL data agreement). The domain registry stores names but no record-level content.

17. Limitations to be aware of

  • Tranco bias. Top-1M skews toward US/EU and global SaaS; ccTLD-only domains with low traffic may be under-represented. The alexa source used for pre-2022 history has a different composition (~960 k domains, US-heavier).
  • SPF flattening hides ESP identity (see § 4).
  • CNAME chains on MX (e.g. mail.example.com → mail.example.protection.outlook.com) are not unrolled — only the first MX target is matched. This biases a small share of domains toward "Unknown" when their MX is a CNAME to a known provider.
  • Vanity MX with white-label provider (Mimecast/Proofpoint customers using their own brand) is not detectable from DNS alone.
  • DKIM enumeration is selector-based — only domains whose well-known selectors are scanned by OpenINTEL appear in the DKIM layer.
  • Long-tail unmatched: ~18.5% of SPF includes belong to a long tail of regional hosters (~84 k unique singletons). This is a fundamental ceiling of any dictionary-based method — filling it would require manual research of 1500+ providers.
  • Newly-added dictionary entries have no historical sparkline until ≥ 2 daily scans accumulate, since archived raw parquet is purged after parsing per the OpenINTEL data agreement.

Comments & corrections

Spotted a mis-classified MX target, missed ESP, or want to discuss a finding? We publish corrections in the next daily snapshot.

Send feedback to support@live-direct-marketing.online

Inline comments coming soon. For now, email is the fastest path — you'll see your fix reflected in tomorrow's run.

Historical reports

Daily snapshots — last 90 days kept fully, older ones thinned to monthly.

2026-07-21 — 667 464 MX, 626 022 SPF2026-07-20 — 668 961 MX, 627 463 SPF2026-07-19 — 659 183 MX, 618 199 SPF2026-07-18 — 659 259 MX, 618 271 SPF2026-07-17 — 659 253 MX, 618 231 SPF2026-07-16 — 659 459 MX, 618 470 SPF2026-07-15 — 659 420 MX, 618 461 SPF2026-07-14 — 659 112 MX, 618 197 SPF2026-07-13 — 658 711 MX, 617 702 SPF2026-07-12 — 658 108 MX, 617 244 SPF2026-07-11 — 657 701 MX, 616 967 SPF2026-07-10 — 657 207 MX, 616 333 SPF2026-07-09 — 657 304 MX, 616 494 SPF2026-07-08 — 656 808 MX, 615 969 SPF2026-07-07 — 655 988 MX, 615 231 SPF2026-07-06 — 655 261 MX, 614 575 SPF2026-07-05 — 654 926 MX, 614 272 SPF2026-07-04 — 665 047 MX, 623 765 SPF2026-07-03 — 664 686 MX, 623 266 SPF2026-07-02 — 664 961 MX, 623 597 SPF2026-07-01 — 664 715 MX, 623 370 SPF2026-06-30 — 665 299 MX, 624 066 SPF2026-06-29 — 671 597 MX, 630 016 SPF2026-06-28 — 667 370 MX, 626 001 SPF2026-06-27 — 666 220 MX, 624 986 SPF2026-06-26 — 666 177 MX, 624 950 SPF2026-06-25 — 665 951 MX, 624 772 SPF2026-06-24 — 665 655 MX, 624 551 SPF2026-06-23 — 665 823 MX, 624 757 SPF2026-06-22 — 665 950 MX, 625 047 SPF2026-06-21 — 667 342 MX, 626 553 SPF2026-06-20 — 669 301 MX, 628 455 SPF2026-06-19 — 661 817 MX, 621 795 SPF2026-06-18 — 661 882 MX, 622 049 SPF2026-06-17 — 661 091 MX, 621 709 SPF2026-06-16 — 660 933 MX, 621 836 SPF2026-06-15 — 662 137 MX, 623 017 SPF2026-06-14 — 650 734 MX, 612 415 SPF2026-06-13 — 650 753 MX, 612 354 SPF2026-06-12 — 651 025 MX, 612 617 SPF2026-06-11 — 651 209 MX, 612 707 SPF2026-06-10 — 651 319 MX, 612 713 SPF2026-06-09 — 650 861 MX, 612 459 SPF2026-06-08 — 650 013 MX, 611 648 SPF2026-06-07 — 649 787 MX, 611 420 SPF2026-06-06 — 658 426 MX, 619 451 SPF2026-06-05 — 659 595 MX, 620 522 SPF2026-06-04 — 660 158 MX, 620 940 SPF2026-06-03 — 660 101 MX, 620 354 SPF2026-06-02 — 660 335 MX, 620 446 SPF2026-06-01 — 662 428 MX, 622 222 SPF2026-05-31 — 667 641 MX, 626 984 SPF2026-05-30 — 663 036 MX, 622 559 SPF2026-05-29 — 663 271 MX, 622 553 SPF2026-05-28 — 663 075 MX, 622 229 SPF2026-05-27 — 663 040 MX, 621 877 SPF2026-05-23 — 660 587 MX, 620 034 SPF2026-05-22 — 657 556 MX, 617 016 SPF2026-05-21 — 659 930 MX, 619 421 SPF2026-05-20 — 659 568 MX, 618 994 SPF2026-05-19 — 661 300 MX, 620 621 SPF2026-05-18 — 653 826 MX, 613 816 SPF2026-05-17 — 652 834 MX, 613 060 SPF2026-05-16 — 653 289 MX, 613 507 SPF2026-05-15 — 653 883 MX, 614 025 SPF2026-05-14 — 654 606 MX, 614 742 SPF2026-05-13 — 654 450 MX, 614 641 SPF2026-05-12 — 654 613 MX, 614 806 SPF2026-05-11 — 654 275 MX, 614 529 SPF2026-05-10 — 654 198 MX, 614 496 SPF2026-05-09 — 654 965 MX, 615 249 SPF2026-05-08 — 664 721 MX, 624 279 SPF2026-05-07 — 662 493 MX, 622 130 SPF2026-05-06 — 661 868 MX, 621 451 SPF2026-05-05 — 662 628 MX, 622 150 SPF2026-05-04 — 662 839 MX, 622 414 SPF2026-05-03 — 671 505 MX, 630 301 SPF2026-05-02 — 666 074 MX, 625 213 SPF2026-05-01 — 664 902 MX, 624 104 SPF2026-04-30 — 665 325 MX, 624 448 SPF2026-04-29 — 665 578 MX, 624 625 SPF2026-04-28 — 663 645 MX, 622 920 SPF2026-04-27 — 665 219 MX, 624 507 SPF2026-04-26 — 673 272 MX, 632 104 SPF2026-04-01 — 667 720 MX, 625 567 SPF2026-03-01 — 683 543 MX, 639 798 SPF2026-02-01 — 688 114 MX, 641 985 SPF2026-01-01 — 660 114 MX, 616 352 SPF2025-12-01 — 668 692 MX, 622 313 SPF2025-11-01 — 659 524 MX, 613 922 SPF2025-10-01 — 644 366 MX, 599 103 SPF2025-09-01 — 685 366 MX, 635 390 SPF2025-08-01 — 681 988 MX, 632 521 SPF2025-07-01 — 687 700 MX, 638 068 SPF2025-06-01 — 699 879 MX, 648 954 SPF2025-05-01 — 711 257 MX, 659 028 SPF2025-04-01 — 702 306 MX, 651 786 SPF2025-03-01 — 705 611 MX, 653 173 SPF2025-02-01 — 696 358 MX, 644 666 SPF2025-01-01 — 674 214 MX, 626 064 SPF2024-12-01 — 675 247 MX, 626 465 SPF2024-11-01 — 669 912 MX, 614 354 SPF2024-10-01 — 659 879 MX, 603 315 SPF2024-09-01 — 660 693 MX, 604 347 SPF2024-08-01 — 639 733 MX, 586 007 SPF2024-07-02 — 632 526 MX, 578 066 SPF2024-06-01 — 614 961 MX, 562 373 SPF2024-05-01 — 621 817 MX, 566 602 SPF2024-04-01 — 641 948 MX, 582 732 SPF2024-03-01 — 666 638 MX, 601 954 SPF2024-02-01 — 653 497 MX, 588 373 SPF2024-01-01 — 657 371 MX, 586 519 SPF2023-12-01 — 660 455 MX, 588 456 SPF2023-11-01 — 666 944 MX, 591 587 SPF2023-10-01 — 675 039 MX, 597 200 SPF2023-09-01 — 694 895 MX, 612 567 SPF2023-08-01 — 716 729 MX, 622 501 SPF2023-07-01 — 653 321 MX, 565 370 SPF2023-06-01 — 656 260 MX, 561 661 SPF2023-05-01 — 657 236 MX, 561 046 SPF2023-04-01 — 662 162 MX, 562 122 SPF2023-03-01 — 730 155 MX, 620 415 SPF2023-02-01 — 715 023 MX, 602 519 SPF2023-01-01 — 712 767 MX, 599 702 SPF2022-12-01 — 712 641 MX, 594 977 SPF2022-11-01 — 710 891 MX, 590 969 SPF2022-10-01 — 716 152 MX, 594 587 SPF2022-09-01 — 716 956 MX, 595 410 SPF2022-08-11 — 427 823 MX, 354 634 SPF2022-07-01 — 968 388 MX, 789 788 SPF2022-06-01 — 1 026 911 MX, 833 170 SPF2022-05-01 — 921 706 MX, 748 398 SPF2022-04-01 — 1 217 939 MX, 976 244 SPF2022-03-01 — 975 521 MX, 779 131 SPF2022-02-01 — 569 414 MX, 464 224 SPF2022-01-01 — 552 174 MX, 447 427 SPF2021-12-01 — 786 477 MX, 631 833 SPF2021-11-01 — 525 808 MX, 424 311 SPF2021-10-01 — 794 460 MX, 633 349 SPF2021-09-01 — 788 407 MX, 628 585 SPF2021-08-01 — 619 384 MX, 493 457 SPF2021-07-01 — 728 817 MX, 579 133 SPF2021-06-01 — 660 453 MX, 523 956 SPF2021-05-01 — 788 324 MX, 620 170 SPF2021-04-01 — 792 560 MX, 621 808 SPF2021-03-01 — 646 458 MX, 507 824 SPF2021-02-01 — 430 383 MX, 339 425 SPF2021-01-01 — 714 286 MX, 554 817 SPF2020-12-01 — 814 029 MX, 629 118 SPF2020-11-01 — 748 490 MX, 574 865 SPF2020-10-01 — 618 268 MX, 476 027 SPF2020-09-01 — 768 508 MX, 586 561 SPF2020-08-01 — 754 330 MX, 572 036 SPF2020-07-01 — 947 188 MX, 717 066 SPF2020-06-01 — 703 956 MX, 531 244 SPF2020-05-01 — 965 680 MX, 721 262 SPF2020-04-01 — 859 917 MX, 639 926 SPF2020-03-01 — 780 292 MX, 579 459 SPF2020-02-01 — 947 773 MX, 696 310 SPF2020-01-01 — 565 274 MX, 417 038 SPF2019-12-01 — 826 277 MX, 600 095 SPF2019-11-01 — 1 039 570 MX, 747 867 SPF2019-10-01 — 966 667 MX, 692 386 SPF2019-09-01 — 838 362 MX, 594 935 SPF2019-08-01 — 1 162 343 MX, 819 141 SPF2019-07-01 — 1 177 952 MX, 806 744 SPF2019-06-01 — 1 205 558 MX, 822 402 SPF2019-05-01 — 1 196 890 MX, 811 837 SPF2019-04-01 — 1 120 142 MX, 752 449 SPF2019-03-01 — 1 170 801 MX, 787 932 SPF2019-02-01 — 1 202 345 MX, 799 255 SPF2019-01-01 — 1 190 206 MX, 783 686 SPF2018-12-01 — 1 196 068 MX, 792 282 SPF2018-11-01 — 1 177 133 MX, 775 137 SPF2018-10-01 — 1 140 868 MX, 743 256 SPF2018-09-01 — 1 183 473 MX, 765 011 SPF2018-08-01 — 1 194 344 MX, 772 448 SPF2018-07-01 — 1 165 617 MX, 745 554 SPF2018-06-01 — 1 193 038 MX, 753 513 SPF2018-05-01 — 1 168 881 MX, 732 275 SPF2018-04-01 — 1 174 598 MX, 730 483 SPF2018-03-01 — 827 056 MX, 516 103 SPF2018-02-01 — 1 195 663 MX, 725 044 SPF2018-01-01 — 813 525 MX, 512 876 SPF2017-12-01 — 818 419 MX, 513 903 SPF2017-11-01 — 815 080 MX, 507 477 SPF2017-10-01 — 823 380 MX, 508 173 SPF2017-09-01 — 815 671 MX, 500 347 SPF2017-08-01 — 829 376 MX, 505 516 SPF2017-07-01 — 830 824 MX, 502 438 SPF2017-06-01 — 828 635 MX, 497 007 SPF2017-05-01 — 828 210 MX, 493 097 SPF2017-04-01 — 828 454 MX, 490 217 SPF2017-03-01 — 824 804 MX, 483 151 SPF2017-02-01 — 839 476 MX, 482 733 SPF2017-01-01 — 827 995 MX, 470 990 SPF2016-12-01 — 825 158 MX, 467 480 SPF2016-11-01 — 837 849 MX, 472 624 SPF2016-10-01 — 838 377 MX, 469 807 SPF2016-09-01 — 835 089 MX, 462 936 SPF2016-08-01 — 848 095 MX, 469 528 SPF2016-07-01 — 842 098 MX, 463 893 SPF2016-06-01 — 848 829 MX, 462 786 SPF2016-05-01 — 843 824 MX, 455 820 SPF2016-04-01 — 843 843 MX, 449 460 SPF2016-03-01 — 865 090 MX, 456 873 SPF2016-02-01 — 862 585 MX, 450 683 SPF2016-01-22 — 845 356 MX, 440 606 SPF
Data source: https://openintel.nl/data/forward-dns/top-lists/
Generated automatically from OpenINTEL Tranco snapshot 2026-07-22. Aggregates only — raw OpenINTEL data is deleted after analysis per their data agreement.
Last build: 2026-07-24T03:05:56Z.