Who uses what for email DAILY

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

665 219
Domains with MX
624 507
Domains with SPF
452 092
Domains with DMARC
665 219
Total scanned

What you're looking at. Four headline counts for the analysed Tranco snapshot: how many domains publish each kind of email-related DNS record. 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.

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.

#Mailbox providerDomainsShare of MX-having domains
1Google Workspace143 33321.55%
2Unknown / Other124 46518.71%
3Microsoft 365110 88516.67%
4Generic / unmatched (mail.*)89 07813.39%
5Generic / unmatched (mx*.*)40 3236.06%
6Proofpoint13 0321.96%
7Yandex 36012 0931.82%
8Mimecast10 6581.6%
9Cloudflare Email Routing9 0771.36%
10Hostinger6 9631.05%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11Zoho Mail6 6711.0%
12Namecheap Email Forwarding6 5190.98%
13GoDaddy4 9050.74%
14QQ Mail (Tencent)4 8260.73%
15Amazon WorkMail4 8160.72%
16OVH Mail4 5100.68%
17Mail.ru for Business4 0120.6%
18Barracuda3 7100.56%
191&1 IONOS3 3110.5%
20Cisco IronPort2 8630.43%
21Proofpoint Essentials2 8020.42%
22Generic / unmatched (smtp.*)2 6210.39%
23Jellyfish (Namecheap)2 3660.36%
24Mailgun (inbound)2 3620.36%
25Rackspace Email2 3610.35%
26Beget (RU)2 2690.34%
27SpamExperts (SolarWinds)2 2550.34%
28Alibaba Mail (China)1 7910.27%
29Zoho Mail (EU)1 7060.26%
30Namecheap PrivateEmail1 6310.25%

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
38.56%
256 487 domains
Unique unmatched MX hosts
185 991
individual hostnames in the long tail
Self-hosted
23.24%
154 624 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 SES38 0536.09%
2SendGrid (Twilio)29 8724.78%
3Mailgun25 3194.05%
4Zendesk24 0583.85%
5Mailchimp23 3763.74%
6Mandrill21 4433.43%
7Salesforce16 1242.58%
8Mailjet (Sinch)13 3542.14%
9Brevo (ex-Sendinblue)6 7791.09%
10Elastic Email4 3490.7%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Unisender (RU)3 9490.63%
12Marketo (Adobe)3 3820.54%
13Postmark2 8820.46%
14SparkPost2 7330.44%
15MailerSend1 8440.3%
16Constant Contact1 8240.29%
17Salesforce Marketing Cloud1 6930.27%
18Freshdesk1 5550.25%
19SMTP.com1 2290.2%
20SMTP.BZ7510.12%
21GetResponse6480.1%
22Sailthru6390.1%
23Customer.io4650.07%
24Eloqua (Oracle)2740.04%
25HubSpot540.01%
26Klaviyo420.01%
27Intercom360.01%
28MailPoet90.0%
29Omnisend80.0%
30ConvertKit70.0%

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
1Pardot (Salesforce)5 1270.82%
2Shopify5 0160.8%
3KnowBe43 5060.56%
4Trustpilot1 9190.31%
5Atlassian (Jira/Confluence)1 9100.31%
6Firebase (Google)1 7360.28%
7Lark / Feishu1 2410.2%
8BigCommerce1 2370.2%
9NetSuite (Oracle)1 1590.19%
10Qualtrics1 1250.18%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11Sage Intacct1 1100.18%
12Oracle Cloud Email1 0400.17%
13Docebo (LMS)9470.15%
14WordPress.com / WP Cloud8950.14%
15Oracle Cloud8370.13%
16Greenhouse6490.1%
17PayPal Braintree6000.1%
18ClickDimensions6000.1%
19Autotask (ConnectWise)5370.09%
20UKG / UltiPro5260.08%
21ConnectWise5200.08%
22Zendesk4310.07%
23FormAssembly4240.07%
24HappyFox4110.07%
25Odoo3940.06%
26Shoptet3790.06%
27Chargebee3300.05%
28Freshsales (Freshworks)1990.03%
29Gorgias1490.02%
30Squarespace1210.02%

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.23%90d ago▲ +1.86%1y ago▲ +4.28%

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;53 927
2v=DMARC1; p=none31 762
3v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com8 043
4v=DMARC1; p=quarantine;4 763
5v=DMARC1; p=quarantine3 902
6v=DMARC1;p=none;3 776
7v=DMARC1; p=reject;3 676
8v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com3 287
9v=DMARC1; p=quarantine; adkim=s; aspf=s3 208
10v=DMARC1; p=reject2 869
11v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;2 706
12v=DMARC1; p=quarantine; pct=1002 349
13v=DMARC1; p=none; aspf=r; adkim=r;2 268
14v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; ruf=mailto:dmarc@mailinblue.com!10m; rf=afrf; pct=100; ri=864002 134
15v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;1 822
16v=DMARC1; p=none; aspf=r; sp=none1 765
17v=DMARC1;p=none1 731
18v=DMARC1; p=none; adkim=r; aspf=r;1 465
19v=DMARC1;p=quarantine;pct=100;fo=11 367
20v=DMARC1;p=reject;1 326
21v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;1 302
22v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email1 293
23v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email1 233
24v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=864001 219
25v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email;1 064
Show rows 26 – 100
#DMARC recordDomains
26v=DMARC1; p=none; sp=none1 063
27v=DMARC1; p=reject; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;1 057
28v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com1 042
29v=DMARC1; p=none; sp=none;1 040
30v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc.report@axa.com;986
31v=DMARC1; p=reject; rua=mailto:report@dmarc.amazon.com; ruf=mailto:report@dmarc.amazon.com886
32v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s880
33v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email790
34v=DMARC1; p=reject; rua=mailto:dmarc.report@axa.com;761
35v=DMARC1; p=none; pct=100701
36v=DMARC1; p=reject; pct=100696
37v=DMARC1;p=quarantine;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400643
38v=DMARC1; p=quarantine; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com616
39v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com604
40v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com582
41v=DMARC1; p=none; sp=none; rf=afrf; pct=100; ri=86400571
42v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:ewai10d2@ag.eu.dmarcian.com; ruf=mailto:ewai10d2@fr.eu.dmarcian.com555
43v=DMARC1;p=quarantine511
44v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email;501
45v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com480
46v=DMARC1; p=quarantine; pct=100;470
47v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s463
48v=DMARC1; p=reject; pct=100;443
49v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net; adkim=r; aspf=r;437
50v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email;435
51v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1384
52v=DMARC1; p=reject; adkim=s; aspf=s383
53v=DMARC1; p=none; sp=none; adkim=r; aspf=r376
54v=DMARC1; p=none; adkim=r; aspf=r362
55v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;361
56v=DMARC1; p=reject; adkim=s; aspf=s;358
57v=DMARC1;p=reject;fo=1;rua=mailto:dmarc_rua@emaildefense.proofpoint.com;ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com354
58v=DMARC1;p=reject343
59v=DMARC1; p=reject; rua=mailto:zsrbf6su@ag.eu.dmarcadvisor.com;341
60v=DMARC1; p=none; pct=100;335
61v=DMARC1327
62v=DMARC1; p=reject; sp=none; rf=afrf; pct=100; ri=86400326
63v=DMARC1; p=none; fo=1325
64v=DMARC1; p=none; rua=mailto:dmarc@smtp.mailtrap.live; ruf=mailto:dmarc@smtp.mailtrap.live; rf=afrf; pct=100324
65v=DMARC1; p=reject; rua=mailto:tnoff9hr@ag.eu.dmarcadvisor.com; aspf=s; adkim=s;313
66v=DMARC1;p=quarantine;311
67v=DMARC1; p=reject; sp=reject; pct=100; fo=1; ri=3600; rua=mailto:dmarcrecord@gmail.com; ruf=mailto:dmarcrecord@gmail.com;281
68v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;fo=1276
69v=DMARC1; p=none; rua=mailto:mailauth-reports@google.com270
70v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400267
71v=DMARC1;p=none;sp=none;pct=50;adkim=r;aspf=r;260
72v=DMARC1; p=none; aspf=r; adkim=r251
73v=DMARC1;p=none;pct=100249
74v=DMARC1;p=none;rua=mailto:dmarc_report@service.aliyun.com245
75v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com236
76v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com234
77v=DMARC1; p=quarantine; adkim=s; aspf=s;226
78v=DMARC1; p=none; rua=mailto:rua-mpse@mpub.ne.jp226
79v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net;223
80v=DMARC1; p=reject; rua=mailto:zicaptxt@ag.dmarcian.com;211
81v=DMARC1; p=quarantine; rua=mailto:rua@dmarc.brevo.com205
82v=DMARC1; p=quarantine; adkim=r; aspf=r202
83v=DMARC1; p=reject; sp=reject197
84v=DMARC1; p=none; sp=none; rua=mailto:dmarc-raports@dhosting.pl191
85v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100188
86v=DMARC1; p=quarantine; pct=100; rua=mailto:61e7fc8674b33@ag.eu.dmarcly.com; ruf=mailto:61e7fc8674b33@fo.eu.dmarcly.com; sp=quarantine; fo=1;185
87v=DMARC1; p=none; pct=100; rua=mailto:dmarc@fbl.optin.com;184
88v=DMARC1;""p=none;""rua=mailto:dmarc_agg@vali.email183
89v=DMARC1;p=none;pct=100;aspf=r;adkim=r;179
90v=DMARC1; p=none; rua=mailto:dmarc@reporting.unisender.com178
91v=DMARC1;p=reject;pct=100;176
92v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:lufthansa@rua.agari.com;175
93v=DMARC1;p=none;rua=mailto:rua@dmarc.brevo.com171
94v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;171
95v=DMARC1; p=quarantine; sp=none; pct=100; ri=86400171
96v=DMARC1; p=reject; pct=100; adkim=s; aspf=s170
97v=DMARC1; p=none; rua=mailto:dmarc.rua@edrone.app; ruf=mailto:dmarc.ruf@edrone.app167
98v=DMARC1; p=quarantine; fo=1164
99v=DMARC1; p=quarantine; sp=none; rf=afrf; pct=100; ri=86400161
100v=DMARC1;p=reject;pct=100157

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
1nan4 409
2mx.stackmail.com972
3isaac.mx.cloudflare.net927
4amir.mx.cloudflare.net925
5linda.mx.cloudflare.net925
6mx1.csof.net652
7mx2.csof.net652
8mail.register.it433
9mailstream-east.mxrecord.io424
10mailstream-west.mxrecord.io423
11mx156.hostedmxserver.com415
12mailstream-central.mxrecord.mx408
13mx001.netsol.xion.oxcs.net386
14mx002.netsol.xion.oxcs.net386
15mx.serviciodecorreo.es385
16mx01.udag.de352
17mx00.udag.de351
18localhost347
19mx-01-eu-central-1.prod.hydra.sophos.com343
20mx.mgovcloud.in342
21mx.plingest.com341
22mx2.mgovcloud.in340
23mx3.mgovcloud.in340
24mx01.lolipop.jp337
25mx-02-eu-central-1.prod.hydra.sophos.com335
Show rows 26 – 100
#MX targetDomains
26kr1-aspmx1.worksmobile.com331
27kr1-aspmx2.worksmobile.com315
28in.arubabusiness.it309
29asapsemi1.mail.protection.office365.us308
30mx-biz.mail.am0.yahoodns.net305
31mailstream-eu1.mxrecord.io285
32mail282
33mx-1.dpoczta.pl257
34mx-2.dpoczta.pl256
35fwd1.porkbun.com251
36mx01.whmpanels.com250
37mx02.whmpanels.com250
38mx03.whmpanels.com250
39fwd2.porkbun.com249
40mx.services245
41mx003.netsol.xion.oxcs.net239
42mx004.netsol.xion.oxcs.net239
43mailcluster.loopia.se238
44vlmx-air.secure.ne.jp234
45mx1.agenturserver.de229
46mx.mailprotect.be227
47mx2.agenturserver.de224
48mxavas.forpsi.com223
49mx-01-us-west-2.prod.hydra.sophos.com222
50mx.backup.mailprotect.be220
51mailapp.hiworks.co.kr220
52mx01.cloud.vadesecure.com219
53mx4.agenturserver.de219
54mail2.loopia.se218
55mx3.agenturserver.de218
56mx02.cloud.vadesecure.com217
57mx-02-us-west-2.prod.hydra.sophos.com216
58mx04.cloud.vadesecure.com215
59mx03.cloud.vadesecure.com214
60mx1.123-reg.co.uk212
61sagw.fsi.ne.jp210
62mx0.123-reg.co.uk208
63mx-vip-01.kinghost.net192
64util01.verticalscope.com190
65mx03.secure-mailgate.com190
66mx-vip-02.kinghost.net190
67~189
68mx04.secure-mailgate.com189
69mx-01-us-east-2.prod.hydra.sophos.com189
70mx.uhserver.com188
71mx01.1and1.com186
72mx-02-us-east-2.prod.hydra.sophos.com186
73mx00.1and1.com180
74mx.transip.email177
75zonemx.eu173
76mail1.sbnation.com172
77mail.autoline.com.ua172
78mx2.z-ns.net171
79mx-vip-01.uni5.net169
80mx.uzmanposta.com169
81mx-vip-02.uni5.net168
82s0.protection.ticimax.com165
83s1.protection.ticimax.com165
84s2.protection.ticimax.com165
85mx1.mtaroutes.com165
86mx2.mtaroutes.com161
87mx1.mirohost.net160
88mx3.mtaroutes.com157
89mx4.mtaroutes.com155
90mx-01-eu-west-1.prod.hydra.sophos.com151
91mx-02-eu-west-1.prod.hydra.sophos.com150
92mx1.emailsendhub.com149
93mx1-eu.emailsecurity.app148
94mx01.dondominio.com148
95mx2-eu.emailsecurity.app147
96mx1.myshoptet.com145
97mx2.myshoptet.com144
9810mx.zoner.com144
99relay.zoner.com143
10015mx.zoner.com143

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
1_spf.mx.cloudflare.net10 547
2secureserver.net8 352
3_spf.mail.hostinger.com7 222
4spf.efwd.registrar-servers.com6 773
5relay.mailchannels.net6 635
6_spf.mlsend.com6 204
7zoho.com5 120
8mx.ovh.com5 006
9websitewelcome.com3 999
10us._netblocks.mimecast.com3 631
11emsd1.com3 100
12spf.mail.qq.com2 985
13_spf.createsend.com2 870
14spf.web-hosting.com2 853
15emailsrvr.com2 809
16_spf-eu.ionos.com2 645
17mxsspf.sendpulse.com2 490
18beget.com2 488
19helpscoutemail.com2 408
20zcsend.net2 380
21stspg-customer.com2 174
22eu._netblocks.mimecast.com2 130
23spf.brevo.com2 020
24zohomail.com2 014
25spf.sender.xserver.jp2 014
Show rows 26 – 100
#SPF includeDomains
26spf.ess.barracudanetworks.com1 995
27spf.crsend.com1 760
28transmail.net1 751
29_spf.rdstation.com.br1 731
30spf.messagingengine.com1 669
31spf.emailsignatures365.com1 606
32spf.mxhichina.com1 550
33_spf.timeweb.ru1 505
34musvc.com1 498
35spf.163.com1 496
36spf.hornetsecurity.com1 454
37_spf.hostedemail.com1 446
38spf.mysecurecloudhost.com1 343
39spf.antispamcloud.com1 335
40spfa.cpmails.com1 307
41relay.mailbaby.net1 302
42_mailcust.gandi.net1 301
43one.zoho.com1 295
44_netblocks.mimecast.com1 265
45spf.titan.email1 243
46netblocks.dreamhost.com1 207
47aspmx.googlemail.com1 199
48spf.exclaimer.net1 192
49_spf.kundenserver.de1 178
50_incspfcheck.mailspike.net1 137
51_spf.aruba.it1 122
52spf.tmes.trendmicro.com1 116
53spf-de.emailsignatures365.com1 088
54_spf.perfora.net1 080
55spf2.esputnik.com1 073
56spf.smtp2go.com1 070
57spf.qiye.aliyun.com1 062
58spf.messagelabs.com1 060
59_spf.jupiter.salesmanago.pl1 047
60outboundmail.blackbaud.net1 036
61_spf.locaweb.com.br1 035
62_spf.hosting.reg.ru985
63spf.stackmail.com976
64authsmtp.com974
65ispgateway.de955
66spf.ipzmarketing.com930
67_spf.ukraine.com.ua910
68spf-bma.mpme.jp901
69spf.dynect.net870
70zoho.in860
71spf.securedserverspace.com854
72spfa.mailendo.com854
73agenturserver.de853
74_spf.emaillabs.net.pl845
75spf.infomaniak.ch818
76spf.eu.exclaimer.net813
77de._netblocks.mimecast.com775
78_spf.mailhostbox.com770
79mxsmtp.sendpulse.com763
80eu.zcsend.net753
81usb._netblocks.mimecast.com733
82_spf.mailspamprotection.com732
83_spf.dashasender.ru716
84_spf.kmitd.com703
85zohomail.eu698
86kagoya.net697
87spf.flowmailer.net688
88sendersrv.com686
89spf.nl2go.com681
90_spf-us.ionos.com677
91spf.improvmx.com674
92cmail1.com670
93spf.afas.online661
94eu.transmail.net660
95spf.unisender.ru658
96spf.bmv.jp657
97spf.sendsay.ru656
98spf.securemx.jp632
99spf.mindbox.ru632
100spf.kasserver.com630

Methodology — how the numbers were produced

1. Data source

The dataset is the daily OpenINTEL forward-DNS Tranco snapshot, produced by the OpenINTEL project (University of Twente / SURFnet / SIDN Labs). OpenINTEL queries the entire Tranco top-1M domain list (https://tranco-list.eu/) daily for MX, TXT, NS, A, AAAA, SOA, CAA, DNSSEC and other records, publishing the results as Apache Parquet.

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

2. Sample

We process the snapshot for a single date (the latest available, typically <24h delay) covering the entire Tranco top-1M list. No sub-sampling; every domain queried by OpenINTEL is included.

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). 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 below for dictionary improvement.

4. ESP (mass-mailing service) classification

For each domain's apex SPF record (TXT starting with v=spf1) we extract every include: and redirect= target and resolve them against an open dictionary (dictionaries/esps.py). One domain may use several ESPs simultaneously (e.g. SendGrid + Mailchimp), so ESP shares sum to more than 100% of SPF-publishing domains.

Note: this method does not count "flattened" SPF (where include chains were replaced with raw IPs to fit the 10-lookup limit) — those domains will appear as ESP-less even when an ESP is in fact used. This is a known limitation of any DNS-only methodology and is consistent across competitive surveys.

5. DMARC

For each domain we query the _dmarc.<domain> TXT record. Records starting with v=DMARC1 are parsed for p= (policy) and pct= (percentage covered). A domain is counted as enforced if p=quarantine or p=reject with pct=100 (or pct absent, which defaults to 100).

6. Tier breakdown

Each domain is assigned a tier from its Tranco rank: top-1k, top-10k, top-100k, top-1M, or unranked if absent from the list at scan time.

7. Reproducibility

Every published report includes the exact OpenINTEL date, dictionary 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 here (per OpenINTEL data agreement).

8. 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.
  • 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 (e.g. some Mimecast/Proofpoint customers use their own brand) is not detectable from DNS alone.

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-04-27 — 665 219 MX, 624 507 SPF2026-04-26 — 673 272 MX, 632 104 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 SPF
Data source: https://openintel.nl/data/forward-dns/top-lists/
Generated automatically from OpenINTEL Tranco snapshot 2026-04-27. Aggregates only — raw OpenINTEL data is deleted after analysis per their data agreement.
Last build: 2026-04-28T22:08:50Z.