Who uses what for email DAILY

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

711 257
Domains with MX
659 028
Domains with SPF
433 277
Domains with DMARC
711 257
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 9 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 / Other187 73026.39%
2Google Workspace151 30821.27%
3Microsoft 365119 88016.85%
4Generic / unmatched (mail.*)95 26213.39%
5Generic / unmatched (mx*.*)63 3768.91%
6Yandex 36013 7481.93%
7Mimecast11 9571.68%
8Generic / unmatched (smtp.*)8 8341.24%
9Zoho Mail6 7360.95%
10Amazon WorkMail5 0310.71%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11QQ Mail (Tencent)4 6350.65%
12Mail.ru for Business4 5710.64%
13OVH Mail4 5510.64%
14Cisco IronPort3 4410.48%
151&1 IONOS3 1890.45%
16Rackspace Email3 0830.43%
17Mailgun (inbound)2 4820.35%
18Beget (RU)2 2630.32%
19Hosted Email (Rackspace/IONOS)1 7860.25%
20Alibaba Mail (China)1 6780.24%
21Gandi Mail1 6770.24%
22FastMail1 6190.23%
23Zoho Mail (EU)1 5870.22%
24ProtonMail1 3460.19%
25Timeweb (RU)1 2180.17%
26Titan (Hostinger)1 2070.17%
27NetEase Mail1 1510.16%
28ImprovMX (forwarding)7950.11%
29Zoho Mail (IN)7810.11%
30Reg.ru7220.1%

Trend — last 9 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
49.94%
355 202 domains
Unique unmatched MX hosts
214 802
individual hostnames in the long tail
Self-hosted
23.6%
167 844 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 SES35 9605.46%
2SendGrid (Twilio)31 0924.72%
3Mailchimp27 4264.16%
4Mailgun25 8603.92%
5Zendesk25 4663.86%
6Mandrill25 3173.84%
7Salesforce16 8252.55%
8Mailjet (Sinch)13 2802.02%
9Brevo (ex-Sendinblue)7 8241.19%
10Elastic Email4 6670.71%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Marketo (Adobe)3 9650.6%
12Unisender (RU)3 8750.59%
13SparkPost2 9770.45%
14Postmark2 8400.43%
15Constant Contact2 4430.37%
16Salesforce Marketing Cloud2 2960.35%
17Freshdesk1 6600.25%
18MailerSend1 6050.24%
19SMTP.com1 4070.21%
20SMTP.BZ7570.11%
21Sailthru7350.11%
22Customer.io5450.08%
23GetResponse4790.07%
24Eloqua (Oracle)3420.05%
25HubSpot280.0%
26Intercom280.0%
27Klaviyo100.0%
28Omnisend40.0%
29Cloudflare Email Routing40.0%
30Dotdigital40.0%

Trend — last 9 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 3650.97%
2Shopify5 0160.76%
3KnowBe43 9020.59%
4Atlassian (Jira/Confluence)2 1580.33%
5Trustpilot1 9930.3%
6Firebase (Google)1 6260.25%
7BigCommerce1 2490.19%
8Qualtrics1 2280.19%
9NetSuite (Oracle)1 2020.18%
10Lark / Feishu1 0270.16%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11Sage Intacct1 0020.15%
12Docebo (LMS)9820.15%
13Oracle Cloud Email8980.14%
14WordPress.com / WP Cloud8960.14%
15ConnectWise8340.13%
16Oracle Cloud8120.12%
17Autotask (ConnectWise)7990.12%
18ClickDimensions7860.12%
19PayPal Braintree7030.11%
20Greenhouse6860.1%
21UKG / UltiPro5610.09%
22HappyFox5140.08%
23Zendesk5020.08%
24FormAssembly4790.07%
25Shoptet3890.06%
26Chargebee3460.05%
27Odoo3250.05%
28Freshsales (Freshworks)2260.03%
29Gorgias1880.03%
30Squarespace1490.02%

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

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

Trend — last 9 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;46 766
2v=DMARC1; p=none33 167
3v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com5 684
4v=DMARC1;p=none;4 402
5v=DMARC1; p=quarantine;4 133
6v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com3 831
7v=DMARC1; p=quarantine3 556
8v=DMARC1; p=reject;3 491
9v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; ruf=mailto:dmarc@mailinblue.com!10m; rf=afrf; pct=100; ri=864002 919
10v=DMARC1; p=none; aspf=r; adkim=r;2 668
11v=DMARC1; p=reject2 508
12v=DMARC1; p=quarantine; adkim=s; aspf=s2 403
13v=DMARC1; p=quarantine; pct=1002 107
14v=DMARC1; p=none; aspf=r; sp=none2 035
15v=DMARC1;p=none1 807
16v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;1 770
17v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email1 609
18v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com1 561
19v=DMARC1;p=quarantine;pct=100;fo=11 488
20v=DMARC1; p=none; adkim=r; aspf=r;1 474
21v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email;1 419
22v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=864001 325
23v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email1 192
24v=DMARC1; p=none; sp=none;1 161
25v=DMARC1; p=none; sp=none1 074
Show rows 26 – 100
#DMARC recordDomains
26v=DMARC1; p=none; pct=100899
27v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;882
28v=DMARC1; p=reject; pct=100757
29v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s749
30v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email699
31v=DMARC1; p=none; sp=none; rf=afrf; pct=100; ri=86400666
32v=DMARC1; p=reject; pct=100;620
33v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com582
34v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com567
35v=DMARC1;p=quarantine527
36v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email;498
37v=DMARC1;p=quarantine;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400489
38v=DMARC1;p=reject;481
39v=DMARC1; p=reject; rua=mailto:zsrbf6su@ag.eu.dmarcadvisor.com;473
40v=DMARC1; p=none; pct=100;471
41v=DMARC1; p=quarantine; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com462
42v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email;456
43v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com453
44v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s443
45v=DMARC1; p=quarantine; pct=100;436
46v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;432
47v=DMARC1; p=reject; rua=mailto:a@dmarcreports.facebook.com;393
48v=DMARC1;p=reject;fo=1;rua=mailto:dmarc_rua@emaildefense.proofpoint.com;ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com386
49v=DMARC1; p=none; sp=none; adkim=r; aspf=r384
50v=DMARC1; p=none; fo=1375
51v=DMARC1; p=reject; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;368
52v=DMARC1; p=reject; adkim=s; aspf=s;356
53v=DMARC1;p=reject351
54v=DMARC1; p=reject; sp=none; rf=afrf; pct=100; ri=86400330
55v=DMARC1; p=none; rua=mailto:dmarc@smtp.mailtrap.live; ruf=mailto:dmarc@smtp.mailtrap.live; rf=afrf; pct=100323
56v=DMARC1; p=none; adkim=r; aspf=r323
57v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1322
58v=DMARC1305
59v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;fo=1305
60v=DMARC1; p=reject; sp=reject; pct=100; fo=1; ri=3600; rua=mailto:dmarcrecord@gmail.com; ruf=mailto:dmarcrecord@gmail.com;287
61v=DMARC1; p=reject; aspf=s;281
62v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com279
63v=DMARC1; p=none; rua=mailto:mailauth-reports@google.com268
64v=DMARC1; p=none; rua=mailto:rua-mpse@mpub.ne.jp251
65v=DMARC1; p=none; pct=100; rua=mailto:dmarc@fbl.optin.com;250
66v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com239
67v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100239
68v=DMARC1;p=none;rua=mailto:rua@dmarc.brevo.com231
69v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400227
70v=DMARC1; p=reject; rua=mailto:zicaptxt@ag.dmarcian.com;225
71v=DMARC1;p=quarantine;223
72v=DMARC1;p=none;sp=none;pct=50;adkim=r;aspf=r;212
73v=DMARC1;p=none;rua=mailto:dmarc_report@service.aliyun.com209
74v=DMARC1; p=reject; adkim=s; aspf=s208
75v=DMARC1;p=none;pct=100;aspf=r;adkim=r;205
76v=DMARC1; p=reject; rua=mailto:report@dmarc.amazon.com; ruf=mailto:report@dmarc.amazon.com198
77v=DMARC1; p=none; sp=none; rua=mailto:dmarc-raports@dhosting.pl197
78v=DMARC1; p=quarantine; adkim=s; aspf=s;187
79v=DMARC1;p=none;pct=100;rua=mailto:dmarc@smtpeter.com183
80v=DMARC1; p=quarantine; sp=none; rf=afrf; pct=100; ri=86400181
81v=DMARC1;p=none;pct=100180
82v=DMARC1; p=none; aspf=r; adkim=r180
83v=DMARC1; p=none; fo=1; ri=3600; rua=mailto:procter-gamble@rua.dmp.cisco.com; ruf=mailto:procter-gamble@ruf.dmp.cisco.com173
84v=DMARC1; p=quarantine; sp=none; pct=100; ri=86400172
85v=DMARC1; p=none; rua=mailto:dmarc_agg@dmarc.everest.email; ruf=mailto:dmarc_fr@dmarc.everest.email; fo=1; pct=100; rf=afrf170
86v=DMARC1; p=none; fo=1;168
87v=DMARC1; p=reject; adkim=r; aspf=r; pct=100;168
88v=DMARC1; p=none; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1163
89v=DMARC1;p=quarantine;pct=100163
90v=DMARC1; p=none; pct=50;160
91v=DMARC1; p=quarantine; fo=1159
92v=DMARC1;p=none;pct=0;rua=mailto:dmarc@vercom.pl159
93v=DMARC1; p=none; pct=100; adkim=r; aspf=r157
94v=DMARC1; p=none; rua=mailto:61e7fc8674b33@ag.eu.dmarcly.com; ruf=mailto:61e7fc8674b33@fo.eu.dmarcly.com; sp=none;156
95v=DMARC1; p=reject; sp=reject153
96v=DMARC1; p=none; rua=mailto:abuse@mailbiz.com.br; ruf=mailto:abuse@mailbiz.com.br153
97v=DMARC1; p=quarantine; sp=quarantine150
98v=DMARC1; p=none; rua=mailto:dmarc.rua@edrone.app; ruf=mailto:dmarc.ruf@edrone.app150
99v=DMARC1; p=none; rua=mailto:dmarc-rua@report.securemx.jp150
100v=DMARC1;p=reject;pct=100144

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
1eforward4.registrar-servers.com9 081
2eforward5.registrar-servers.com9 081
3eforward1.registrar-servers.com9 076
4eforward2.registrar-servers.com9 066
5eforward3.registrar-servers.com9 045
6route1.mx.cloudflare.net7 188
7route3.mx.cloudflare.net7 185
8route2.mx.cloudflare.net7 185
9mailstore1.secureserver.net5 950
10smtp.secureserver.net5 927
11mx1.hostinger.com4 379
12mx2.hostinger.com4 345
13mx1-us1.ppe-hosted.com3 099
14mx2-us1.ppe-hosted.com3 070
15mx2-hosting.jellyfish.systems2 420
16mx1-hosting.jellyfish.systems2 419
17mx3-hosting.jellyfish.systems2 412
18nan2 206
19mx1.privateemail.com1 803
20mx2.privateemail.com1 786
21mx30.antispam.mailspamprotection.com1 698
22mx10.antispam.mailspamprotection.com1 697
23mx20.antispam.mailspamprotection.com1 696
24park-mx.above.com1 259
25mx1.hostinger.in1 099
Show rows 26 – 100
#MX targetDomains
26mx1.mailchannels.net1 098
27mx.stackmail.com1 095
28mx2.mailchannels.net1 091
29mx2.hostinger.in1 089
30mx01.hornetsecurity.com1 083
31mx02.hornetsecurity.com1 075
32mx156.hostedmxserver.com1 059
33mx.a.locaweb.com.br1 058
34mx.b.locaweb.com.br1 051
35mx03.hornetsecurity.com1 051
36mx.jk.locaweb.com.br1 048
37mx04.hornetsecurity.com1 037
38isaac.mx.cloudflare.net1 010
39amir.mx.cloudflare.net1 008
40linda.mx.cloudflare.net1 008
41mx.core.locaweb.com.br933
42us2.mx3.mailhostbox.com787
43us2.mx1.mailhostbox.com784
44us2.mx2.mailhostbox.com784
45mx.spamexperts.com782
46mxlb.ispgateway.de730
47fallbackmx.spamexperts.eu727
48lastmx.spamexperts.net717
49mx20.mailspamprotection.com710
50mx10.mailspamprotection.com709
51mx30.mailspamprotection.com701
52smtpin.rzone.de687
53mx1.csof.net646
54mx2.csof.net646
55mx1.qiye.aliyun.com621
56mx20.ukraine.com.ua620
57mx15.ukraine.com.ua616
58mx2.forwardemail.net615
59mx1.forwardemail.net614
60mx.securemx.jp606
61mx2.qiye.aliyun.com603
62mx3.qiye.aliyun.com596
63mx01.nicmail.ru588
64mx1.feishu.cn582
65mx3.feishu.cn579
66mx2.feishu.cn577
67mx02.nicmail.ru576
68mx03.nicmail.ru570
69dmail.kagoya.net562
70za-smtp-inbound-2.mimecast.co.za554
71za-smtp-inbound-1.mimecast.co.za552
72mta-gw.infomaniak.ch545
73localhost528
74mail.register.it518
75mx002.netsol.xion.oxcs.net514
76mx001.netsol.xion.oxcs.net512
77mailstream-east.mxrecord.io501
78mailstream-west.mxrecord.io498
79mx.ukraine.com.ua497
80mail.h-email.net460
81mx1-eu1.ppe-hosted.com457
82mx2-eu1.ppe-hosted.com454
83mailstream-central.mxrecord.mx446
84mx-biz.mail.am0.yahoodns.net411
85mx.serviciodecorreo.es366
86mx01.udag.de357
87mx00.udag.de355
88mx01.lolipop.jp342
89mx1.123-reg.co.uk322
90mx0.123-reg.co.uk320
91mx-01-eu-central-1.prod.hydra.sophos.com319
92mx-01-us-west-2.prod.hydra.sophos.com317
93mx1.dreamhost.com317
94mx-02-eu-central-1.prod.hydra.sophos.com315
95mx2.dreamhost.com313
96mx-02-us-west-2.prod.hydra.sophos.com311
97mx01.cloud.vadesecure.com298
98mx004.netsol.xion.oxcs.net298
99mx02.cloud.vadesecure.com297
100mx003.netsol.xion.oxcs.net297

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
1spf.efwd.registrar-servers.com9 258
2_spf.mx.cloudflare.net8 597
3secureserver.net8 533
4relay.mailchannels.net6 832
5_spf.mail.hostinger.com6 444
6_spf.mlsend.com5 922
7zoho.com5 893
8mx.ovh.com4 890
9us._netblocks.mimecast.com4 483
10websitewelcome.com4 222
11emsd1.com3 777
12emailsrvr.com3 450
13spf.ess.barracudanetworks.com3 105
14_spf.createsend.com3 014
15spf.web-hosting.com2 989
16spf.mail.qq.com2 824
17helpscoutemail.com2 822
18mxsspf.sendpulse.com2 504
19beget.com2 501
20_spf-eu.ionos.com2 457
21zcsend.net2 452
22eu._netblocks.mimecast.com2 407
23stspg-customer.com2 356
24spf.emailsignatures365.com2 044
25spf.sender.xserver.jp2 001
Show rows 26 – 100
#SPF includeDomains
26transmail.net1 976
27_netblocks.mimecast.com1 975
28_spf.rdstation.com.br1 828
29spf.messagingengine.com1 650
30spf.crsend.com1 579
31musvc.com1 575
32spf.exclaimer.net1 558
33spf.tmes.trendmicro.com1 505
34spf.mxhichina.com1 439
35aspmx.googlemail.com1 406
36spf.messagelabs.com1 396
37spf.hornetsecurity.com1 393
38_mailcust.gandi.net1 372
39spf.titan.email1 353
40spf.antispamcloud.com1 347
41netblocks.dreamhost.com1 316
42spf.163.com1 285
43_spf.timeweb.ru1 283
44spf.brevo.com1 278
45_incspfcheck.mailspike.net1 258
46_spf.locaweb.com.br1 235
47spf.smtp2go.com1 230
48zohomail.com1 230
49spf.securedserverspace.com1 224
50outboundmail.blackbaud.net1 199
51_spf.kundenserver.de1 196
52spf.dynect.net1 145
53relay.mailbaby.net1 139
54authsmtp.com1 107
55one.zoho.com1 097
56_spf.perfora.net1 094
57spf.stackmail.com1 091
58_spf.aruba.it1 057
59spf2.esputnik.com1 056
60_spf.jupiter.salesmanago.pl1 036
61_spf.ukraine.com.ua996
62spfa.cpmails.com991
63_spf.mailspamprotection.com971
64_spf.hostedemail.com931
65ispgateway.de913
66mxsmtp.sendpulse.com909
67spf.eu.exclaimer.net905
68_spf.mailhostbox.com901
69spfa.mailendo.com895
70spf-bma.mpme.jp890
71spf.ipzmarketing.com888
72_spf.hosting.reg.ru856
73spf-de.emailsignatures365.com814
74_spf.emaillabs.net.pl796
75cmail1.com795
76spf.mysecurecloudhost.com793
77spf.afas.online781
78agenturserver.de776
79spf.qiye.aliyun.com774
80spf.improvmx.com751
81turbo-smtp.com747
82usb._netblocks.mimecast.com743
83_spf.kmitd.com733
84bluehost.com732
85mailcontrol.com724
86kagoya.net722
87spf.us.exclaimer.net712
88au._netblocks.mimecast.com704
89spf.webapps.net694
90zoho.in693
91_spf-us.ionos.com689
92spf.flowmailer.net688
93_spf.dashasender.ru682
94eu.zcsend.net677
95spf.retailcrm.pro671
96de._netblocks.mimecast.com670
97spf.infomaniak.ch666
98spf.nl2go.com666
99spf.mailanyone.net655
100spf.mindbox.ru655

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-05-01. Aggregates only — raw OpenINTEL data is deleted after analysis per their data agreement.
Last build: 2026-04-28T12:15:25Z.