Who uses what for email DAILY

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

668 692
Domains with MX
622 313
Domains with SPF
433 617
Domains with DMARC
668 692
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 4 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 / Other173 05025.88%
2Google Workspace144 92021.67%
3Microsoft 365109 33116.35%
4Generic / unmatched (mail.*)92 77513.87%
5Generic / unmatched (mx*.*)60 2439.01%
6Yandex 36012 7401.91%
7Mimecast10 1581.52%
8Generic / unmatched (smtp.*)7 8741.18%
9Zoho Mail6 9531.04%
10Amazon WorkMail4 7330.71%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11OVH Mail4 5750.68%
12QQ Mail (Tencent)4 3310.65%
13Mail.ru for Business4 2740.64%
141&1 IONOS3 1130.47%
15Cisco IronPort2 9510.44%
16Rackspace Email2 7600.41%
17Mailgun (inbound)2 2580.34%
18Beget (RU)2 2040.33%
19Hosted Email (Rackspace/IONOS)2 0000.3%
20Zoho Mail (EU)1 6920.25%
21Alibaba Mail (China)1 6370.24%
22FastMail1 5010.22%
23Gandi Mail1 4650.22%
24ProtonMail1 4180.21%
25NetEase Mail1 2490.19%
26Titan (Hostinger)1 2210.18%
27Timeweb (RU)1 2140.18%
28Zoho Mail (IN)9260.14%
29Reg.ru7300.11%
30ImprovMX (forwarding)6900.1%

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

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 1645.81%
2SendGrid (Twilio)28 9364.65%
3Mailgun25 3254.07%
4Zendesk24 2483.9%
5Mailchimp24 1623.88%
6Mandrill22 4383.61%
7Salesforce15 6802.52%
8Mailjet (Sinch)12 9022.07%
9Brevo (ex-Sendinblue)7 1011.14%
10Elastic Email4 4730.72%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Unisender (RU)3 9580.64%
12Marketo (Adobe)3 4770.56%
13SparkPost2 6760.43%
14Postmark2 6720.43%
15Constant Contact1 8740.3%
16Salesforce Marketing Cloud1 8110.29%
17MailerSend1 7270.28%
18Freshdesk1 5060.24%
19SMTP.com1 2130.19%
20SMTP.BZ7370.12%
21Sailthru6510.1%
22GetResponse5530.09%
23Customer.io4700.08%
24Eloqua (Oracle)2790.04%
25HubSpot470.01%
26Intercom330.01%
27Klaviyo130.0%
28Dotdigital50.0%
29MailPoet40.0%
30AWeber30.0%

Trend — last 4 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 5810.9%
2Pardot (Salesforce)5 3170.85%
3KnowBe43 3850.54%
4Trustpilot1 9700.32%
5Atlassian (Jira/Confluence)1 9150.31%
6Firebase (Google)1 6170.26%
7BigCommerce1 2420.2%
8Lark / Feishu1 1940.19%
9NetSuite (Oracle)1 1730.19%
10Qualtrics1 1150.18%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11Sage Intacct1 0300.17%
12Oracle Cloud Email9760.16%
13Docebo (LMS)9200.15%
14WordPress.com / WP Cloud8380.13%
15Oracle Cloud7910.13%
16PayPal Braintree6360.1%
17Greenhouse6330.1%
18ClickDimensions6210.1%
19ConnectWise5740.09%
20Autotask (ConnectWise)5690.09%
21UKG / UltiPro5280.08%
22Zendesk4520.07%
23HappyFox4390.07%
24Shoptet4030.06%
25FormAssembly3960.06%
26Odoo3740.06%
27Chargebee3200.05%
28Freshsales (Freshworks)2200.04%
29Gorgias1750.03%
30Squarespace1210.02%

Trend — last 4 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 4 day(s) · DMARC enforced %

7d ago▲ +0.23%90d ago▲ +1.86%

Trend — last 4 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 803
2v=DMARC1; p=none33 682
3v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com7 098
4v=DMARC1; p=quarantine;4 344
5v=DMARC1;p=none;4 008
6v=DMARC1; p=quarantine3 602
7v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com3 351
8v=DMARC1; p=reject;3 247
9v=DMARC1; p=quarantine; adkim=s; aspf=s3 184
10v=DMARC1; p=reject2 700
11v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; ruf=mailto:dmarc@mailinblue.com!10m; rf=afrf; pct=100; ri=864002 466
12v=DMARC1; p=none; aspf=r; adkim=r;2 460
13v=DMARC1; p=quarantine; pct=1002 386
14v=DMARC1; p=none; aspf=r; sp=none1 762
15v=DMARC1;p=none1 759
16v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;1 659
17v=DMARC1; p=none; adkim=r; aspf=r;1 450
18v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;1 436
19v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=864001 403
20v=DMARC1;p=quarantine;pct=100;fo=11 390
21v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email1 332
22v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;1 205
23v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email1 203
24v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email;1 166
25v=DMARC1; p=reject; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;1 114
Show rows 26 – 100
#DMARC recordDomains
26v=DMARC1; p=none; sp=none;1 111
27v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com1 100
28v=DMARC1; p=none; sp=none1 001
29v=DMARC1;p=reject;831
30v=DMARC1; p=none; pct=100731
31v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email715
32v=DMARC1; p=reject; pct=100707
33v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s676
34v=DMARC1; p=none; sp=none; rf=afrf; pct=100; ri=86400642
35v=DMARC1;p=quarantine;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400641
36v=DMARC1; p=quarantine; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com573
37v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com572
38v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com565
39v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:lufthansa@rua.agari.com;548
40v=DMARC1;p=quarantine499
41v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com478
42v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email;460
43v=DMARC1; p=reject; pct=100;445
44v=DMARC1; p=quarantine; pct=100;440
45v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email;430
46v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s394
47v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;390
48v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1378
49v=DMARC1; p=none; sp=none; adkim=r; aspf=r360
50v=DMARC1; p=none; pct=100;356
51v=DMARC1; p=none; rua=mailto:dmarc@smtp.mailtrap.live; ruf=mailto:dmarc@smtp.mailtrap.live; rf=afrf; pct=100347
52v=DMARC1; p=reject; sp=none; rf=afrf; pct=100; ri=86400346
53v=DMARC1; p=reject; adkim=s; aspf=s;346
54v=DMARC1;p=reject;fo=1;rua=mailto:dmarc_rua@emaildefense.proofpoint.com;ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com344
55v=DMARC1;p=reject339
56v=DMARC1; p=none; fo=1331
57v=DMARC1310
58v=DMARC1; p=none; adkim=r; aspf=r302
59v=DMARC1; p=reject; sp=reject; pct=100; fo=1; ri=3600; rua=mailto:dmarcrecord@gmail.com; ruf=mailto:dmarcrecord@gmail.com;300
60v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400276
61v=DMARC1; p=reject; rua=mailto:report@dmarc.amazon.com; ruf=mailto:report@dmarc.amazon.com265
62v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net;263
63v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;fo=1263
64v=DMARC1; p=none; rua=mailto:mailauth-reports@google.com258
65v=DMARC1;p=quarantine;257
66v=DMARC1; p=none; rua=mailto:rua-mpse@mpub.ne.jp233
67v=DMARC1; p=reject; adkim=s; aspf=s232
68v=DMARC1; p=none; aspf=r; adkim=r230
69v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com226
70v=DMARC1;p=none;sp=none;pct=50;adkim=r;aspf=r;225
71v=DMARC1;p=none;rua=mailto:dmarc_report@service.aliyun.com222
72v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com219
73v=DMARC1; p=reject; rua=mailto:zsrbf6su@ag.eu.dmarcadvisor.com;218
74v=DMARC1; p=reject; rua=mailto:zicaptxt@ag.dmarcian.com;214
75v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100208
76v=DMARC1; p=none; pct=100; rua=mailto:dmarc@fbl.optin.com;207
77v=DMARC1;p=none;rua=mailto:rua@dmarc.brevo.com205
78v=DMARC1;p=none;pct=100203
79v=DMARC1; p=quarantine; adkim=s; aspf=s;200
80v=DMARC1;p=none;pct=100;aspf=r;adkim=r;196
81v=DMARC1; p=none; sp=none; rua=mailto:dmarc-raports@dhosting.pl186
82v=DMARC1; p=quarantine; adkim=r; aspf=r176
83v=DMARC1; p=none; rua=mailto:dmarc.rua@edrone.app; ruf=mailto:dmarc.ruf@edrone.app176
84v=DMARC1; p=none; rua=mailto:dmarc@reporting.unisender.com174
85v=DMARC1; p=reject; sp=reject173
86v=DMARC1; p=quarantine; sp=none; rf=afrf; pct=100; ri=86400166
87v=DMARC1; p=quarantine; sp=none; pct=100; ri=86400166
88v=DMARC1; p=none; rua=mailto:dmarc@newsletters.visualsoft.co.uk; aspf=r; adkim=r; ri=86400; fo=1165
89v=DMARC1;p=reject;pct=100;rua=mailto:dmarcreport@matrimony.com;ruf=mailto:dmarcreports@matrimony.com162
90v=DMARC1; p=reject; pct=100; adkim=s; aspf=s160
91v=DMARC1;p=none;pct=0;rua=mailto:dmarc@vercom.pl155
92v=DMARC1; p=none; rua=mailto:abuse@mailbiz.com.br; ruf=mailto:abuse@mailbiz.com.br155
93v=DMARC1; p=none; pct=100; fo=1; ri=3600; rua=mailto:1dd3f5c7@inbox.ondmarc.com; ruf=mailto:1dd3f5c7@inbox.ondmarc.com;153
94v=DMARC1; p=quarantine; fo=1150
95v=DMARC1; p=none; pct=50;150
96v=DMARC1; p=none; rua=mailto:dmarc_agg@dmarc.everest.email; ruf=mailto:dmarc_fr@dmarc.everest.email; fo=1; pct=100; rf=afrf149
97v=DMARC1;p=none;sp=none;149
98v=DMARC1; p=none; fo=1; ri=3600; rua=mailto:procter-gamble@rua.dmp.cisco.com; ruf=mailto:procter-gamble@ruf.dmp.cisco.com147
99v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;147
100v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s;pct=100;fo=0;rf=afrf;ri=86400146

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 565
2route3.mx.cloudflare.net7 563
3route2.mx.cloudflare.net7 562
4eforward5.registrar-servers.com7 186
5eforward1.registrar-servers.com7 183
6eforward4.registrar-servers.com7 178
7eforward2.registrar-servers.com7 173
8eforward3.registrar-servers.com7 164
9smtp.secureserver.net5 299
10mailstore1.secureserver.net5 290
11mx1.hostinger.com5 204
12mx2.hostinger.com5 172
13nan2 559
14mx1-us1.ppe-hosted.com2 241
15mx2-us1.ppe-hosted.com2 227
16mx3-hosting.jellyfish.systems2 192
17mx2-hosting.jellyfish.systems2 164
18mx1-hosting.jellyfish.systems2 149
19mx1.privateemail.com1 694
20mx2.privateemail.com1 679
21mx10.antispam.mailspamprotection.com1 632
22mx20.antispam.mailspamprotection.com1 631
23mx30.antispam.mailspamprotection.com1 629
24mx.plingest.com1 500
25mx1.mailchannels.net989
Show rows 26 – 100
#MX targetDomains
26mx2.mailchannels.net984
27mx01.hornetsecurity.com946
28mx02.hornetsecurity.com945
29mx.a.locaweb.com.br935
30mx.b.locaweb.com.br924
31mx03.hornetsecurity.com923
32mx.jk.locaweb.com.br922
33mx.stackmail.com921
34mx04.hornetsecurity.com918
35isaac.mx.cloudflare.net906
36amir.mx.cloudflare.net904
37linda.mx.cloudflare.net904
38park-mx.above.com850
39mx.core.locaweb.com.br826
40mx1.hostinger.in815
41mx2.hostinger.in809
42mx1.qiye.aliyun.com774
43mx2.qiye.aliyun.com759
44mx3.qiye.aliyun.com743
45us2.mx1.mailhostbox.com725
46us2.mx2.mailhostbox.com725
47us2.mx3.mailhostbox.com725
48mx.spamexperts.com718
49fallbackmx.spamexperts.eu703
50lastmx.spamexperts.net691
51mx1.feishu.cn678
52mx2.feishu.cn677
53mx3.feishu.cn675
54mx1.csof.net615
55mx2.csof.net615
56mta-gw.infomaniak.ch597
57mx20.mailspamprotection.com589
58mx10.mailspamprotection.com586
59mx30.mailspamprotection.com579
60smtpin.rzone.de579
61dmail.kagoya.net569
62mx.securemx.jp569
63za-smtp-inbound-1.mimecast.co.za562
64za-smtp-inbound-2.mimecast.co.za561
65mxlb.ispgateway.de524
66mx20.ukraine.com.ua513
67mx15.ukraine.com.ua510
68mx01.nicmail.ru500
69mx03.nicmail.ru487
70mx02.nicmail.ru486
71mx1.forwardemail.net485
72mx2.forwardemail.net485
73mail.register.it478
74mailstream-east.mxrecord.io457
75mailstream-west.mxrecord.io456
76mailstream-central.mxrecord.mx439
77mx.ukraine.com.ua431
78mx001.netsol.xion.oxcs.net412
79mx002.netsol.xion.oxcs.net409
80mx.serviciodecorreo.es398
81localhost396
82mx2-eu1.ppe-hosted.com385
83mx1-eu1.ppe-hosted.com384
84mx1.larksuite.com375
85mx2.larksuite.com375
86mx3.larksuite.com373
87mx01.lolipop.jp369
88mx-biz.mail.am0.yahoodns.net343
89mxext1.mailbox.org310
90mxext2.mailbox.org309
91mail307
92mxext3.mailbox.org301
93in.arubabusiness.it299
94mailstream-eu1.mxrecord.io293
95mx-01-eu-central-1.prod.hydra.sophos.com280
96kr1-aspmx1.worksmobile.com275
97mx-02-eu-central-1.prod.hydra.sophos.com275
98mx01.udag.de271
99mx00.udag.de269
100mx2.spaceweb.ru263

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 864
2secureserver.net8 849
3spf.efwd.registrar-servers.com7 336
4_spf.mail.hostinger.com6 847
5relay.mailchannels.net6 723
6_spf.mlsend.com6 169
7zoho.com5 552
8mx.ovh.com5 004
9websitewelcome.com4 629
10us._netblocks.mimecast.com3 703
11emsd1.com3 219
12emailsrvr.com3 124
13_spf.createsend.com2 805
14spf.mail.qq.com2 803
15spf.web-hosting.com2 647
16helpscoutemail.com2 532
17_spf-eu.ionos.com2 465
18beget.com2 448
19mxsspf.sendpulse.com2 430
20zcsend.net2 400
21stspg-customer.com2 221
22eu._netblocks.mimecast.com2 135
23spf.sender.xserver.jp2 131
24spf.ess.barracudanetworks.com2 115
25zohomail.com1 795
Show rows 26 – 100
#SPF includeDomains
26transmail.net1 780
27_spf.rdstation.com.br1 750
28spf.brevo.com1 607
29spf.emailsignatures365.com1 566
30spf.messagingengine.com1 561
31musvc.com1 497
32spf.mxhichina.com1 415
33spf.crsend.com1 388
34spf.163.com1 384
35_spf.hostedemail.com1 373
36spf.antispamcloud.com1 357
37_netblocks.mimecast.com1 348
38spf.titan.email1 338
39_incspfcheck.mailspike.net1 312
40_spf.timeweb.ru1 310
41_mailcust.gandi.net1 309
42aspmx.googlemail.com1 264
43spf.exclaimer.net1 253
44relay.mailbaby.net1 238
45spf.tmes.trendmicro.com1 207
46spf.hornetsecurity.com1 185
47netblocks.dreamhost.com1 156
48one.zoho.com1 105
49spf.messagelabs.com1 105
50_spf.locaweb.com.br1 103
51_spf.kundenserver.de1 093
52spfa.cpmails.com1 092
53spf.smtp2go.com1 088
54_spf.aruba.it1 071
55spf.securedserverspace.com1 069
56spf.mysecurecloudhost.com1 068
57_spf.jupiter.salesmanago.pl1 037
58spf2.esputnik.com1 037
59_spf.perfora.net1 014
60authsmtp.com996
61outboundmail.blackbaud.net990
62spf.ipzmarketing.com958
63spf.stackmail.com946
64spf.qiye.aliyun.com942
65_spf.ukraine.com.ua913
66spf.dynect.net911
67_spf.hosting.reg.ru877
68spf-bma.mpme.jp874
69_spf.mailhostbox.com863
70spfa.mailendo.com849
71_spf.emaillabs.net.pl839
72_spf.mailspamprotection.com832
73spf-de.emailsignatures365.com822
74ispgateway.de811
75zoho.in799
76mxsmtp.sendpulse.com790
77spf.eu.exclaimer.net745
78_spf.dashasender.ru726
79eu.zcsend.net722
80spf.infomaniak.ch717
81kagoya.net709
82usb._netblocks.mimecast.com704
83cmail1.com698
84_spf.kmitd.com696
85de._netblocks.mimecast.com694
86spf.improvmx.com689
87turbo-smtp.com670
88spf.webapps.net668
89spf.unisender.ru660
90_spf-us.ionos.com655
91agenturserver.de645
92sendersrv.com644
93spf.mindbox.ru644
94spf.afas.online629
95au._netblocks.mimecast.com629
96spf.sendsay.ru628
97eu.transmail.net623
98spf.flowmailer.net623
99bluehost.com609
100zohomail.eu603

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.

Data source: https://openintel.nl/data/forward-dns/top-lists/
Generated automatically from OpenINTEL Tranco snapshot 2025-12-01. Aggregates only — raw OpenINTEL data is deleted after analysis per their data agreement.
Last build: 2026-04-28T11:27:13Z.