Who uses what for email DAILY

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

921 706
Domains with MX
748 398
Domains with SPF
0
Domains with DMARC
921 706
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
1Self-Hosted279 53930.33%
2Google Workspace189 70420.58%
3Microsoft 365112 98912.26%
4Unknown / Other64 1066.96%
5Generic / unmatched (mx*.*)30 0953.27%
6Yandex 36024 1752.62%
7GoDaddy14 5991.58%
8Generic / unmatched (mail.*)12 0771.31%
9Zoho Mail11 2531.22%
10Namecheap Email Forwarding10 6281.15%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11Mimecast10 0191.09%
12Hostinger9 7581.06%
13SpamExperts (SolarWinds)9 0480.98%
14Proofpoint8 5900.93%
15OVH Mail8 1530.88%
16Hosted Email (Rackspace/IONOS)6 1130.66%
17Rackspace Email5 7050.62%
18Jellyfish (Namecheap)5 3040.58%
19QQ Mail (Tencent)5 1020.55%
201&1 IONOS5 0290.55%
21Barracuda4 9850.54%
22Beget (RU)3 9160.42%
23Amazon WorkMail3 2690.35%
24Proofpoint Essentials3 2480.35%
25One.com mailpod3 1110.34%
26Namecheap PrivateEmail2 9550.32%
27Mail.ru for Business2 9160.32%
28Cisco IronPort2 8120.31%
29Mailgun (inbound)2 3620.26%
30Gandi Mail2 2760.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
11.71%
107 903 domains
Unique unmatched MX hosts
41 611
individual hostnames in the long tail
Self-hosted
30.34%
279 666 domains running their own MX
📋 Open detailed long-tail report →·🏠 Providers portfolio →·📧 SaaS/ESP senders →·📮 Mailing services (ESPs) →·⬇ 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
1Mailchimp31 8034.25%
2SendGrid (Twilio)27 5363.68%
3Mandrill26 5223.54%
4Zendesk22 7853.04%
5Amazon SES22 3072.98%
6Mailgun20 0792.68%
7MailChannels15 0532.01%
8Namecheap Forwarding10 8371.45%
9SpamExperts (SolarWinds)10 7721.44%
10Mailjet (Sinch)9 5791.28%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Mimecast8 7531.17%
12Salesforce8 7521.17%
13Brevo (ex-Sendinblue)8 4121.12%
14Elastic Email4 4530.6%
15Marketo (Adobe)3 6190.48%
16MailerSend3 5460.47%
17Emsd1 (transactional)3 5340.47%
18Help Scout2 9470.39%
19SpamExperts (AntiSpamCloud)2 8060.37%
20SendPulse2 7850.37%
21Constant Contact2 7330.37%
22Barracuda Essentials2 7020.36%
23Zoho Campaigns2 6490.35%
24Postmark2 6200.35%
25Zoho ZeptoMail2 5130.34%
26SparkPost2 5070.33%
27Unisender (RU)2 1280.28%
28Exclaimer (signatures)1 9940.27%
29Cloudflare Email Routing1 9280.26%
30Freshdesk1 8320.24%

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)6 0680.81%
2Shopify5 3810.72%
3CodeTwo Email Signatures 3652 6020.35%
4BigCommerce2 2810.3%
5Trustpilot1 8550.25%
6KnowBe41 6690.22%
7Statuspage (Atlassian)1 6440.22%
8Firebase (Google)1 4250.19%
9Atlassian (Jira/Confluence)1 4200.19%
10Squarespace9590.13%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11NetSuite (Oracle)9520.13%
12ClickDimensions9240.12%
13Qualtrics7440.1%
14PayPal Braintree6880.09%
15One.com (DK hosting)5180.07%
16Docebo (LMS)5150.07%
17Zendesk5060.07%
18Greenhouse4590.06%
19Freshsales (Freshworks)3970.05%
20ConnectWise3550.05%
21k.io (workspace)3370.05%
22Umantis (Haufe HR)2990.04%
23Autotask (ConnectWise)2970.04%
24SchoolMessenger2930.04%
25Gorgias2830.04%
26Sage Intacct2780.04%
27RetailCRM2560.03%
28HappyFox2490.03%
29Oracle Cloud Email2180.03%
30Brightspace (D2L)2140.03%

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.25%30d ago▲ +1.03%90d ago▲ +1.88%1y ago▲ +4.30%

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 819
2v=DMARC1; p=none31 635
3v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com8 034
4v=DMARC1; p=quarantine;4 753
5v=DMARC1; p=quarantine3 897
6v=DMARC1;p=none;3 765
7v=DMARC1; p=reject;3 674
8v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com3 272
9v=DMARC1; p=quarantine; adkim=s; aspf=s3 195
10v=DMARC1; p=reject2 858
11v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;2 701
12v=DMARC1; p=quarantine; pct=1002 330
13v=DMARC1; p=none; aspf=r; adkim=r;2 266
14v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; ruf=mailto:dmarc@mailinblue.com!10m; rf=afrf; pct=100; ri=864002 117
15v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;1 827
16v=DMARC1; p=none; aspf=r; sp=none1 750
17v=DMARC1;p=none1 716
18v=DMARC1; p=none; adkim=r; aspf=r;1 456
19v=DMARC1;p=quarantine;pct=100;fo=11 364
20v=DMARC1;p=reject;1 329
21v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;1 300
22v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email1 291
23v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email1 223
24v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=864001 213
25v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email;1 064
Show rows 26 – 100
#DMARC recordDomains
26v=DMARC1; p=none; sp=none1 055
27v=DMARC1; p=reject; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;1 051
28v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com1 044
29v=DMARC1; p=none; sp=none;1 039
30v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc.report@axa.com;976
31v=DMARC1; p=reject; rua=mailto:report@dmarc.amazon.com; ruf=mailto:report@dmarc.amazon.com887
32v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s886
33v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email788
34v=DMARC1; p=reject; rua=mailto:dmarc.report@axa.com;772
35v=DMARC1; p=none; pct=100702
36v=DMARC1; p=reject; pct=100694
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.com610
39v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com607
40v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com584
41v=DMARC1; p=none; sp=none; rf=afrf; pct=100; ri=86400568
42v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:ewai10d2@ag.eu.dmarcian.com; ruf=mailto:ewai10d2@fr.eu.dmarcian.com556
43v=DMARC1;p=quarantine508
44v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email;507
45v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com478
46v=DMARC1; p=quarantine; pct=100;474
47v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s453
48v=DMARC1; p=reject; pct=100;443
49v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net; adkim=r; aspf=r;439
50v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email;436
51v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1385
52v=DMARC1; p=reject; adkim=s; aspf=s381
53v=DMARC1; p=none; sp=none; adkim=r; aspf=r371
54v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;359
55v=DMARC1; p=reject; adkim=s; aspf=s;359
56v=DMARC1; p=none; adkim=r; aspf=r358
57v=DMARC1;p=reject;fo=1;rua=mailto:dmarc_rua@emaildefense.proofpoint.com;ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com352
58v=DMARC1;p=reject341
59v=DMARC1; p=none; pct=100;334
60v=DMARC1330
61v=DMARC1; p=reject; sp=none; rf=afrf; pct=100; ri=86400325
62v=DMARC1; p=none; rua=mailto:dmarc@smtp.mailtrap.live; ruf=mailto:dmarc@smtp.mailtrap.live; rf=afrf; pct=100325
63v=DMARC1; p=none; fo=1324
64v=DMARC1; p=reject; rua=mailto:tnoff9hr@ag.eu.dmarcadvisor.com; aspf=s; adkim=s;314
65v=DMARC1;p=quarantine;312
66v=DMARC1; p=reject; rua=mailto:zsrbf6su@ag.eu.dmarcadvisor.com;296
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.com271
70v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400269
71v=DMARC1;p=none;sp=none;pct=50;adkim=r;aspf=r;258
72v=DMARC1; p=none; aspf=r; adkim=r250
73v=DMARC1;p=none;rua=mailto:dmarc_report@service.aliyun.com247
74v=DMARC1;p=none;pct=100244
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.com231
77v=DMARC1; p=quarantine; adkim=s; aspf=s;227
78v=DMARC1; p=none; rua=mailto:rua-mpse@mpub.ne.jp225
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.com206
82v=DMARC1; p=quarantine; adkim=r; aspf=r199
83v=DMARC1; p=reject; sp=reject196
84v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100190
85v=DMARC1; p=none; sp=none; rua=mailto:dmarc-raports@dhosting.pl186
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;182
88v=DMARC1; p=none; rua=mailto:dmarc@reporting.unisender.com179
89v=DMARC1;p=none;pct=100;aspf=r;adkim=r;178
90v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:lufthansa@rua.agari.com;176
91v=DMARC1;""p=none;""rua=mailto:dmarc_agg@vali.email175
92v=DMARC1;p=none;rua=mailto:rua@dmarc.brevo.com172
93v=DMARC1;p=reject;pct=100;172
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=86400169
96v=DMARC1; p=reject; pct=100; adkim=s; aspf=s168
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=100158

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
1mx00.1and1.com1 568
2mx01.1and1.com1 561
3mx.simply.com935
4mx-biz.mail.am0.yahoodns.net835
5mx00.1and1.es748
6mx01.1and1.es747
7mx1.netsolmail.net737
8mx00.1and1.co.uk731
9mx01.1and1.co.uk730
10mx01.1and1.fr645
11mx00.1and1.fr641
12localhost569
13smx2.web-hosting.com542
14smx1.web-hosting.com534
15smx3.web-hosting.com534
16mx2.jimdo.com508
17mx1.jimdo.com507
18smtp-fwd.wordpress.com507
19mx-in04.natrohost.com483
20mx-in04b.natrohost.com481
21mx-in05b.natrohost.com471
22mx-in05.natrohost.com469
23nan442
24antispam1.ihs.com.tr394
25antispam2.ihs.com.tr392
Show rows 26 – 100
#MX targetDomains
26mx-backup.serveriai.lt362
27mx1.tmdhosting.com324
28mx-in03.natrohost.com324
29mx-in03b.natrohost.com323
30mx2.tmdhosting.com322
31mailgw.nic.in317
32mx1.oderland.com286
33mx2.oderland.com285
34mx1.emailowl.com264
35mx3.oderland.com263
36mx4.oderland.com262
37mx2.emailowl.com261
38mx1.spamfiltering.io258
39mx2.spamfiltering.io258
40mx3.emailowl.com257
41rd-spamexperts.guzel.net.tr234
42ni-spamexperts.guzel.net.tr231
43mx-in02.natrohost.com231
44mx-in02b.natrohost.com231
45mx00.schlund.de228
46mx01.schlund.de228
47mx-in01b.natrohost.com226
48mx-in01.natrohost.com225
49s.mail.dcsaas.net224
50smtp-avas-th.seeweb.it214
51mx01.easyname.eu210
52mx02.easyname.eu210
53asp.reflexion.net201
54relay2.netnames.net189
55smtp.imcloud.org187
56mx1.supremebox.com185
57relay1.netnames.net185
58mx2.supremebox.com183
59mx1.inbox.co.il181
60smtp-scan01.mx.reflected.net181
61smx4.web-hosting.com177
62in.hes.trendmicro.eu177
63mailbackup3.doruk.net.tr177
64mx-100.reflexion.net176
65mx-110.reflexion.net170
66mail3.eqx.gridhost.co.uk168
67mta.hosts.net.nz168
68webmail2.sitebuildit.com168
69mx1.nz.smxemail.com165
70mx2.nz.smxemail.com164
71inbound-smtp.cp.blacknight.com160
72mx1.krystal.co.uk157
73sitemail.everyone.net156
74zonemx.eu155
75mx.spamfilter.io155
76mx2.krystal.co.uk155
77mailfilter2b.mijndomein.nl154
78mailfilter1b.mijndomein.nl153
79mta1.youcan.shop151
80mta2.youcan.shop150
81mx.usa.net148
82relay.bestofpost.com147
83mx3.volusion.com145
84mx4.volusion.com145
85mx.hetemail.jp141
86mx01.vargonen.net141
87mx3.name.com137
88fallback.axc.eu137
89mx4.name.com136
90mx5.name.com136
91mx1.dandomain.dk136
92mx8.name.com135
93mx6.name.com135
94maildrop1.argewebhosting.nl135
95maildrop2.argewebhosting.nl135
96maildrop3.argewebhosting.nl135
97mx2.dandomain.dk135
98mx2.onlinemail.io134
99mx1.onlinemail.io133
100mx7.name.com132

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.automattic.com3 683
2bluehost.com3 345
3_netblockshalon.natrohost.com1 750
4_spfcls.natrohost.com1 737
5webhostbox.net1 646
6spf.flockmail.com1 478
7spf.a2hosting.com1 438
8spf.improvmx.com1 122
9spf.webapps.net1 036
10cmail1.com980
11_spf.transip.email942
12infusionmail.com907
13send.aweber.com841
14spf.autopilothq.com832
15outlook.com794
16_spf.turhost.com794
17spf.simply.com783
18spf.mailanyone.net768
19spf.mail.intercom.io726
20spf.jabatus.fr690
21spf.serveriai.lt674
22_spf.mixhost.jp673
23_spf.protection.veridyen.com670
24mailcontrol.com655
25spf.easywp.com625
Show rows 26 – 100
#SPF includeDomains
26nicmail.ru624
27_spf.trwww.com621
28spf.nl2go.com613
29_spf.domeneshop.no603
30spf.afas.online593
31sender.zohobooks.com571
32_spf.anpdm.com567
33smtp-out.spf.superhosting.bg560
34turbo-smtp.com554
35_spf.prod.hydra.sophos.com551
36_spf.nicegrup.com549
37e2ma.net544
38_spf.serviciodecorreo.es535
39hostmonster.com531
40spf.linuxpl.com526
41smtp.servconfig.com524
42_spf.cyberfolks.pl522
43_spf.hostnet.nl503
44spf.tld.pl494
45spf.mailcluster.com.au487
46spf.topdesk.net482
47relay.is.cc481
48email-od.com479
49_mail.dhosting.pl476
50spf.hostingplatform.net.au475
51spf.hes.trendmicro.com474
52_spf.act-on.net472
53_spf.zenbox.pl470
54spf.hostmar.com461
55_spf.hoster.by449
56_spf.5g-soft.com443
57_vsp.oderland.com439
58spf.lianamailer.com426
59mxlogin.com424
60spf.registeredsite.com420
61icpbounce.com416
62google.com411
63msgfocus.com409
64email.freshservice.com409
65_spf.syrahost.com404
66spf.zixsmbhosted.com399
67_netblocks.google.com392
68spf.w4ymail.at387
69bmsend.com384
70emailus.freshservice.com382
71_spf.srv.cat374
72md02.com373
73_spf.acquia.com373
74spf.raiolanetworks.com362
75spf.migadu.com345
76spf.totaalholding.nl344
77smtp.groovehq.com344
78_spf.conoha.ne.jp336
79appriver.com335
80hotmail.com334
81_spf.embluemail.com333
82spf.mindbox.ru332
83_netblocks2.google.com331
84_spf.websupport.sk327
85outboundmail.convio.net325
86_netblocks3.google.com323
87spf.mijndomeinhosting.nl320
88spf.ihs.com.tr319
89_spf.gestiondeservidor.net312
90spf.flowmailer.net311
91customer.mailguard.com.au308
92spf.dondominio.com304
93ncapp02.com302
94spf.masterbase.com298
95spf.tipalti.com296
96_spf.heteml.jp296
97_spf.fastmail.gr295
98spf.mtaroutes.com292
99ncfp.asia290
100mh.blackboard.com288

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-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 SPF
Data source: https://openintel.nl/data/forward-dns/top-lists/
Generated automatically from OpenINTEL Tranco snapshot 2022-05-01. Aggregates only — raw OpenINTEL data is deleted after analysis per their data agreement.
Last build: 2026-04-29T10:34:42Z.