Who uses what for email DAILY

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

660 114
Domains with MX
616 352
Domains with SPF
431 133
Domains with DMARC
660 114
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
1Unknown / Other171 04425.91%
2Google Workspace143 17121.69%
3Microsoft 365107 27716.25%
4Generic / unmatched (mail.*)91 73913.9%
5Generic / unmatched (mx*.*)59 7839.06%
6Yandex 36012 5871.91%
7Mimecast9 8501.49%
8Generic / unmatched (smtp.*)7 6491.16%
9Zoho Mail6 8001.03%
10Amazon WorkMail4 7070.71%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11OVH Mail4 5030.68%
12QQ Mail (Tencent)4 4450.67%
13Mail.ru for Business4 2590.65%
141&1 IONOS2 9790.45%
15Cisco IronPort2 9350.44%
16Rackspace Email2 6580.4%
17Mailgun (inbound)2 2220.34%
18Beget (RU)2 0490.31%
19Hosted Email (Rackspace/IONOS)1 8860.29%
20Zoho Mail (EU)1 6900.26%
21Alibaba Mail (China)1 6390.25%
22FastMail1 4950.23%
23ProtonMail1 4380.22%
24Gandi Mail1 4370.22%
25NetEase Mail1 2620.19%
26Timeweb (RU)1 2440.19%
27Titan (Hostinger)1 1260.17%
28Zoho Mail (IN)9090.14%
29CSC (corporate)8670.13%
30Reg.ru7790.12%

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
50.02%
330 215 domains
Unique unmatched MX hosts
203 587
individual hostnames in the long tail
Self-hosted
24.5%
161 757 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 SES36 1485.86%
2SendGrid (Twilio)28 6954.66%
3Mailgun25 0664.07%
4Zendesk24 0533.9%
5Mailchimp23 6063.83%
6Mandrill22 0083.57%
7Salesforce15 4262.5%
8Mailjet (Sinch)12 7202.06%
9Brevo (ex-Sendinblue)6 8921.12%
10Elastic Email4 3990.71%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Unisender (RU)3 9780.65%
12Marketo (Adobe)3 4050.55%
13SparkPost2 6650.43%
14Postmark2 6500.43%
15Constant Contact1 8170.29%
16MailerSend1 7390.28%
17Salesforce Marketing Cloud1 7180.28%
18Freshdesk1 4930.24%
19SMTP.com1 1880.19%
20SMTP.BZ7240.12%
21Sailthru6380.1%
22GetResponse5750.09%
23Customer.io4700.08%
24Eloqua (Oracle)2730.04%
25HubSpot490.01%
26Intercom330.01%
27Klaviyo170.0%
28MailPoet60.0%
29Benchmark Email40.0%
30Dotdigital40.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
1Shopify5 4460.88%
2Pardot (Salesforce)5 1910.84%
3KnowBe43 3090.54%
4Trustpilot1 9660.32%
5Atlassian (Jira/Confluence)1 8640.3%
6Firebase (Google)1 6140.26%
7Lark / Feishu1 1810.19%
8BigCommerce1 1570.19%
9NetSuite (Oracle)1 1390.18%
10Qualtrics1 1040.18%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11Sage Intacct1 0290.17%
12Oracle Cloud Email9810.16%
13Docebo (LMS)9100.15%
14WordPress.com / WP Cloud8390.14%
15Oracle Cloud7880.13%
16Greenhouse6370.1%
17PayPal Braintree6330.1%
18ClickDimensions6000.1%
19Autotask (ConnectWise)5690.09%
20ConnectWise5660.09%
21UKG / UltiPro5170.08%
22Shoptet4780.08%
23Zendesk4400.07%
24HappyFox4250.07%
25FormAssembly3860.06%
26Odoo3480.06%
27Chargebee3230.05%
28Freshsales (Freshworks)2010.03%
29Gorgias1710.03%
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;50 658
2v=DMARC1; p=none32 837
3v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com7 172
4v=DMARC1; p=quarantine;4 365
5v=DMARC1;p=none;3 974
6v=DMARC1; p=quarantine3 636
7v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com3 333
8v=DMARC1; p=reject;3 319
9v=DMARC1; p=quarantine; adkim=s; aspf=s2 978
10v=DMARC1; p=reject2 753
11v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; ruf=mailto:dmarc@mailinblue.com!10m; rf=afrf; pct=100; ri=864002 353
12v=DMARC1; p=none; aspf=r; adkim=r;2 300
13v=DMARC1; p=quarantine; pct=1002 236
14v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;1 800
15v=DMARC1; p=none; aspf=r; sp=none1 793
16v=DMARC1;p=none1 770
17v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;1 652
18v=DMARC1;p=quarantine;pct=100;fo=11 382
19v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=864001 381
20v=DMARC1; p=none; adkim=r; aspf=r;1 372
21v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email1 323
22v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email1 245
23v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;1 188
24v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email;1 134
25v=DMARC1; p=none; sp=none;1 107
Show rows 26 – 100
#DMARC recordDomains
26v=DMARC1; p=reject; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;1 103
27v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com1 093
28v=DMARC1; p=none; sp=none1 027
29v=DMARC1;p=reject;806
30v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email730
31v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s723
32v=DMARC1; p=none; pct=100719
33v=DMARC1; p=reject; pct=100699
34v=DMARC1;p=quarantine;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400655
35v=DMARC1; p=none; sp=none; rf=afrf; pct=100; ri=86400620
36v=DMARC1; p=quarantine; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com596
37v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com560
38v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com556
39v=DMARC1; p=reject; rua=mailto:report@dmarc.amazon.com; ruf=mailto:report@dmarc.amazon.com525
40v=DMARC1;p=quarantine491
41v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s489
42v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com471
43v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:xlcat@rua.agari.com,mailto:ewai10d2@ag.eu.dmarcian.com; ruf=mailto:xlcat@ruf.agari.com463
44v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email;457
45v=DMARC1; p=quarantine; pct=100;443
46v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email;420
47v=DMARC1; p=reject; pct=100;418
48v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;377
49v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1368
50v=DMARC1; p=none; sp=none; adkim=r; aspf=r364
51v=DMARC1; p=none; pct=100;351
52v=DMARC1; p=reject; sp=none; rf=afrf; pct=100; ri=86400350
53v=DMARC1; p=reject; adkim=s; aspf=s;346
54v=DMARC1; p=none; rua=mailto:dmarc@smtp.mailtrap.live; ruf=mailto:dmarc@smtp.mailtrap.live; rf=afrf; pct=100344
55v=DMARC1;p=reject;fo=1;rua=mailto:dmarc_rua@emaildefense.proofpoint.com;ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com344
56v=DMARC1;p=reject343
57v=DMARC1; p=none; fo=1327
58v=DMARC1315
59v=DMARC1; p=none; adkim=r; aspf=r305
60v=DMARC1; p=reject; sp=reject; pct=100; fo=1; ri=3600; rua=mailto:dmarcrecord@gmail.com; ruf=mailto:dmarcrecord@gmail.com;299
61v=DMARC1; p=reject; rua=mailto:zsrbf6su@ag.eu.dmarcadvisor.com;295
62v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400283
63v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;fo=1269
64v=DMARC1; p=none; rua=mailto:mailauth-reports@google.com267
65v=DMARC1;p=quarantine;260
66v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net;259
67v=DMARC1;p=none;rua=mailto:dmarc_report@service.aliyun.com234
68v=DMARC1; p=reject; adkim=s; aspf=s231
69v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com231
70v=DMARC1;p=none;sp=none;pct=50;adkim=r;aspf=r;230
71v=DMARC1; p=none; rua=mailto:rua-mpse@mpub.ne.jp230
72v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com221
73v=DMARC1; p=none; aspf=r; adkim=r218
74v=DMARC1; p=reject; rua=mailto:zicaptxt@ag.dmarcian.com;213
75v=DMARC1;p=none;pct=100211
76v=DMARC1; p=none; pct=100; rua=mailto:dmarc@fbl.optin.com;210
77v=DMARC1; p=quarantine; adkim=s; aspf=s;207
78v=DMARC1;p=none;rua=mailto:rua@dmarc.brevo.com200
79v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100199
80v=DMARC1;p=none;pct=100;aspf=r;adkim=r;195
81v=DMARC1; p=none; rua=mailto:dmarc.rua@edrone.app; ruf=mailto:dmarc.ruf@edrone.app193
82v=DMARC1; p=none; sp=none; rua=mailto:dmarc-raports@dhosting.pl191
83v=DMARC1; p=none; rua=mailto:dmarc@reporting.unisender.com183
84v=DMARC1; p=quarantine; adkim=r; aspf=r179
85v=DMARC1; p=reject; sp=reject173
86v=DMARC1; p=none; rua=mailto:abuse@mailbiz.com.br; ruf=mailto:abuse@mailbiz.com.br173
87v=DMARC1; p=quarantine; sp=none; pct=100; ri=86400171
88v=DMARC1; p=quarantine; sp=none; rf=afrf; pct=100; ri=86400167
89v=DMARC1; p=reject; pct=100; adkim=s; aspf=s162
90v=DMARC1; p=reject; rua=mailto:2ynhg3yt@ag.dmarcian.com161
91v=DMARC1;p=none;pct=0;rua=mailto:dmarc@vercom.pl160
92v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;160
93v=DMARC1; p=none; pct=50;156
94v=DMARC1;p=none;sp=none;155
95v=DMARC1;p=reject;pct=100;150
96v=DMARC1; p=none; pct=100; adkim=r; aspf=r149
97v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s;pct=100;fo=0;rf=afrf;ri=86400149
98v=DMARC1; p=quarantine; fo=1149
99v=DMARC1;p=reject;pct=100147
100v=DMARC1; p=none; pct=100; fo=1; ri=3600; rua=mailto:1dd3f5c7@inbox.ondmarc.com; ruf=mailto:1dd3f5c7@inbox.ondmarc.com;147

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
1route1.mx.cloudflare.net7 728
2route2.mx.cloudflare.net7 727
3route3.mx.cloudflare.net7 726
4eforward5.registrar-servers.com6 930
5eforward1.registrar-servers.com6 928
6eforward4.registrar-servers.com6 923
7eforward2.registrar-servers.com6 920
8eforward3.registrar-servers.com6 912
9mx1.hostinger.com5 110
10mx2.hostinger.com5 084
11smtp.secureserver.net5 078
12mailstore1.secureserver.net5 076
13nan2 664
14mx3-hosting.jellyfish.systems2 212
15mx2-hosting.jellyfish.systems2 183
16mx1-hosting.jellyfish.systems2 163
17mx1-us1.ppe-hosted.com2 161
18mx2-us1.ppe-hosted.com2 148
19mx.plingest.com2 011
20mx1.privateemail.com1 658
21mx2.privateemail.com1 642
22mx10.antispam.mailspamprotection.com1 530
23mx20.antispam.mailspamprotection.com1 526
24mx30.antispam.mailspamprotection.com1 524
25mx1.mailchannels.net961
Show rows 26 – 100
#MX targetDomains
26mx2.mailchannels.net958
27mx.stackmail.com955
28mx01.hornetsecurity.com950
29mx02.hornetsecurity.com948
30mx.a.locaweb.com.br946
31mx.b.locaweb.com.br935
32mx.jk.locaweb.com.br935
33mx03.hornetsecurity.com928
34mx04.hornetsecurity.com923
35isaac.mx.cloudflare.net886
36amir.mx.cloudflare.net884
37linda.mx.cloudflare.net884
38park-mx.above.com883
39mx.core.locaweb.com.br833
40mx1.qiye.aliyun.com784
41mx2.qiye.aliyun.com770
42mx1.hostinger.in758
43mx3.qiye.aliyun.com756
44mx2.hostinger.in751
45mx.spamexperts.com714
46us2.mx1.mailhostbox.com703
47us2.mx2.mailhostbox.com703
48us2.mx3.mailhostbox.com703
49fallbackmx.spamexperts.eu702
50lastmx.spamexperts.net690
51mx1.feishu.cn686
52mx2.feishu.cn685
53mx3.feishu.cn683
54mx1.csof.net611
55mx2.csof.net611
56mta-gw.infomaniak.ch591
57smtpin.rzone.de587
58dmail.kagoya.net573
59mx.securemx.jp572
60za-smtp-inbound-1.mimecast.co.za566
61za-smtp-inbound-2.mimecast.co.za565
62mx20.mailspamprotection.com551
63mx10.mailspamprotection.com549
64mx30.mailspamprotection.com541
65mx20.ukraine.com.ua524
66mx15.ukraine.com.ua520
67mx01.nicmail.ru512
68mxlb.ispgateway.de504
69mx03.nicmail.ru500
70mx02.nicmail.ru499
71mx1.forwardemail.net488
72mx2.forwardemail.net488
73mail.register.it478
74mx.ukraine.com.ua438
75mailstream-east.mxrecord.io425
76mailstream-west.mxrecord.io424
77mailstream-central.mxrecord.mx409
78localhost404
79mx.serviciodecorreo.es380
80mx001.netsol.xion.oxcs.net379
81mx002.netsol.xion.oxcs.net379
82mx1-eu1.ppe-hosted.com368
83mx2-eu1.ppe-hosted.com368
84mx2.larksuite.com362
85mx01.lolipop.jp361
86mx1.larksuite.com361
87mx3.larksuite.com360
88mx-biz.mail.am0.yahoodns.net311
89mxext1.mailbox.org302
90mxext2.mailbox.org301
91in.arubabusiness.it300
92mxext3.mailbox.org294
93kr1-aspmx1.worksmobile.com292
94mail285
95mx.mgovcloud.in283
96mx2.mgovcloud.in282
97mx3.mgovcloud.in281
98mailstream-eu1.mxrecord.io277
99kr1-aspmx2.worksmobile.com274
100mx01.udag.de273

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.net8 966
2secureserver.net8 576
3spf.efwd.registrar-servers.com7 081
4relay.mailchannels.net6 631
5_spf.mail.hostinger.com6 598
6_spf.mlsend.com6 100
7zoho.com5 395
8mx.ovh.com4 975
9websitewelcome.com4 242
10us._netblocks.mimecast.com3 610
11emsd1.com3 178
12emailsrvr.com3 053
13spf.mail.qq.com2 853
14_spf.createsend.com2 703
15spf.web-hosting.com2 663
16helpscoutemail.com2 466
17mxsspf.sendpulse.com2 426
18_spf-eu.ionos.com2 349
19zcsend.net2 348
20beget.com2 266
21stspg-customer.com2 179
22spf.sender.xserver.jp2 089
23eu._netblocks.mimecast.com2 086
24spf.ess.barracudanetworks.com2 005
25zohomail.com1 818
Show rows 26 – 100
#SPF includeDomains
26_spf.rdstation.com.br1 783
27transmail.net1 768
28spf.brevo.com1 651
29spf.messagingengine.com1 552
30spf.emailsignatures365.com1 523
31musvc.com1 485
32spf.163.com1 402
33spf.mxhichina.com1 401
34spf.crsend.com1 373
35_spf.timeweb.ru1 320
36_incspfcheck.mailspike.net1 318
37_netblocks.mimecast.com1 309
38spf.antispamcloud.com1 305
39_spf.hostedemail.com1 292
40relay.mailbaby.net1 288
41_mailcust.gandi.net1 282
42spf.titan.email1 241
43aspmx.googlemail.com1 238
44spf.exclaimer.net1 198
45spf.tmes.trendmicro.com1 176
46spf.hornetsecurity.com1 175
47spf.mysecurecloudhost.com1 143
48_spf.locaweb.com.br1 120
49one.zoho.com1 112
50spfa.cpmails.com1 110
51netblocks.dreamhost.com1 104
52spf.messagelabs.com1 076
53spf2.esputnik.com1 060
54_spf.kundenserver.de1 060
55spf.smtp2go.com1 045
56_spf.jupiter.salesmanago.pl1 045
57_spf.aruba.it1 007
58spf.securedserverspace.com991
59outboundmail.blackbaud.net990
60_spf.perfora.net984
61spf.stackmail.com981
62authsmtp.com978
63_spf.ukraine.com.ua952
64spf.qiye.aliyun.com951
65_spf.hosting.reg.ru927
66spf.ipzmarketing.com922
67spf.dynect.net884
68spf-bma.mpme.jp877
69spfa.mailendo.com852
70_spf.emaillabs.net.pl850
71_spf.mailhostbox.com820
72spf-de.emailsignatures365.com817
73_spf.mailspamprotection.com795
74zoho.in794
75mxsmtp.sendpulse.com785
76ispgateway.de766
77_spf.dashasender.ru741
78spf.eu.exclaimer.net723
79spf.infomaniak.ch717
80kagoya.net713
81_spf.kmitd.com709
82spf.improvmx.com703
83de._netblocks.mimecast.com702
84cmail1.com687
85eu.zcsend.net683
86usb._netblocks.mimecast.com680
87spf.unisender.ru673
88spf.webapps.net657
89spf.mindbox.ru646
90sendersrv.com644
91spf.sendsay.ru643
92_auxspf.axspace.com642
93turbo-smtp.com636
94spf.afas.online630
95agenturserver.de625
96_spf-us.ionos.com619
97spf.flowmailer.net619
98eu.transmail.net614
99au._netblocks.mimecast.com607
100spf.bmv.jp604

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 SPF2025-12-01 — 668 692 MX, 622 313 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-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 SPF
Data source: https://openintel.nl/data/forward-dns/top-lists/
Generated automatically from OpenINTEL Tranco snapshot 2026-01-01. Aggregates only — raw OpenINTEL data is deleted after analysis per their data agreement.
Last build: 2026-04-28T19:04:14Z.