Who uses what for email DAILY

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

702 306
Domains with MX
651 786
Domains with SPF
421 792
Domains with DMARC
702 306
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 10 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 / Other185 03426.35%
2Google Workspace151 05221.51%
3Microsoft 365112 93816.08%
4Generic / unmatched (mail.*)95 76713.64%
5Generic / unmatched (mx*.*)62 8858.95%
6Yandex 36014 6972.09%
7Mimecast11 3751.62%
8Generic / unmatched (smtp.*)8 6091.23%
9Zoho Mail6 7210.96%
10Amazon WorkMail5 0500.72%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11Mail.ru for Business4 9730.71%
12QQ Mail (Tencent)4 6210.66%
13OVH Mail4 5240.64%
14Cisco IronPort3 3340.47%
151&1 IONOS3 1440.45%
16Rackspace Email3 0750.44%
17Beget (RU)2 5700.37%
18Mailgun (inbound)2 5430.36%
19Hosted Email (Rackspace/IONOS)1 7420.25%
20Gandi Mail1 7010.24%
21Alibaba Mail (China)1 6720.24%
22FastMail1 6260.23%
23Zoho Mail (EU)1 6010.23%
24ProtonMail1 3740.2%
25Timeweb (RU)1 2760.18%
26Titan (Hostinger)1 2410.18%
27NetEase Mail1 1490.16%
28ImprovMX (forwarding)8220.12%
29Zoho Mail (IN)7730.11%
30Reg.ru7590.11%

Trend — last 10 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.16%
352 295 domains
Unique unmatched MX hosts
214 459
individual hostnames in the long tail
Self-hosted
24.14%
169 516 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 4975.45%
2SendGrid (Twilio)30 4854.68%
3Mailchimp26 7774.11%
4Mailgun25 4393.9%
5Zendesk25 1773.86%
6Mandrill25 1073.85%
7Salesforce16 3092.5%
8Mailjet (Sinch)12 9781.99%
9Brevo (ex-Sendinblue)7 7291.19%
10Elastic Email4 5990.71%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Unisender (RU)3 9740.61%
12Marketo (Adobe)3 9460.61%
13SparkPost2 9790.46%
14Postmark2 8090.43%
15Salesforce Marketing Cloud2 3070.35%
16Constant Contact2 2890.35%
17Freshdesk1 6530.25%
18MailerSend1 5430.24%
19SMTP.com1 3630.21%
20SMTP.BZ7820.12%
21Sailthru7410.11%
22Customer.io5570.09%
23GetResponse4490.07%
24Eloqua (Oracle)3380.05%
25Intercom290.0%
26HubSpot250.0%
27Klaviyo110.0%
28Dotdigital40.0%
29AWeber30.0%
30Beehiiv30.0%

Trend — last 10 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 3150.97%
2Shopify4 8840.75%
3KnowBe43 5680.55%
4Atlassian (Jira/Confluence)2 1100.32%
5Trustpilot1 9700.3%
6Firebase (Google)1 6250.25%
7BigCommerce1 2150.19%
8Qualtrics1 1910.18%
9NetSuite (Oracle)1 1590.18%
10Docebo (LMS)9780.15%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11Lark / Feishu9620.15%
12Sage Intacct9230.14%
13WordPress.com / WP Cloud8820.14%
14Oracle Cloud Email8800.14%
15Oracle Cloud8040.12%
16ClickDimensions7510.12%
17PayPal Braintree7030.11%
18ConnectWise6880.11%
19Greenhouse6720.1%
20Autotask (ConnectWise)6390.1%
21UKG / UltiPro5310.08%
22Zendesk5000.08%
23HappyFox4930.08%
24FormAssembly4740.07%
25Shoptet3630.06%
26Chargebee3510.05%
27Odoo3020.05%
28Freshsales (Freshworks)2250.03%
29Gorgias1880.03%
30Squarespace1530.02%

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

7d ago▲ +0.23%90d ago▲ +1.86%1y ago▲ +4.28%

Trend — last 10 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;44 978
2v=DMARC1; p=none33 037
3v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com5 393
4v=DMARC1;p=none;4 271
5v=DMARC1; p=quarantine;4 030
6v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com3 773
7v=DMARC1; p=reject;3 436
8v=DMARC1; p=quarantine3 384
9v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; ruf=mailto:dmarc@mailinblue.com!10m; rf=afrf; pct=100; ri=864002 963
10v=DMARC1; p=none; aspf=r; adkim=r;2 651
11v=DMARC1; p=reject2 451
12v=DMARC1; p=quarantine; adkim=s; aspf=s2 395
13v=DMARC1; p=none; aspf=r; sp=none2 148
14v=DMARC1; p=quarantine; pct=1001 987
15v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;1 760
16v=DMARC1;p=none1 752
17v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email1 621
18v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com1 605
19v=DMARC1;p=quarantine;pct=100;fo=11 507
20v=DMARC1; p=none; adkim=r; aspf=r;1 430
21v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=864001 375
22v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email;1 370
23v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email1 184
24v=DMARC1; p=none; sp=none;1 159
25v=DMARC1; p=none; sp=none1 075
Show rows 26 – 100
#DMARC recordDomains
26v=DMARC1; p=none; pct=100856
27v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;800
28v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s765
29v=DMARC1; p=reject; pct=100708
30v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email671
31v=DMARC1; p=none; sp=none; rf=afrf; pct=100; ri=86400667
32v=DMARC1; p=reject; pct=100;616
33v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com586
34v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com563
35v=DMARC1;p=reject;505
36v=DMARC1;p=quarantine;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400502
37v=DMARC1;p=quarantine486
38v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email;478
39v=DMARC1; p=none; pct=100;457
40v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com457
41v=DMARC1; p=quarantine; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com454
42v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email;443
43v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;402
44v=DMARC1; p=quarantine; pct=100;398
45v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s393
46v=DMARC1; p=reject; rua=mailto:a@dmarcreports.facebook.com;392
47v=DMARC1;p=reject;fo=1;rua=mailto:dmarc_rua@emaildefense.proofpoint.com;ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com376
48v=DMARC1; p=none; fo=1369
49v=DMARC1; p=reject; adkim=s; aspf=s;356
50v=DMARC1;p=reject352
51v=DMARC1; p=none; sp=none; adkim=r; aspf=r342
52v=DMARC1; p=reject; sp=none; rf=afrf; pct=100; ri=86400339
53v=DMARC1; p=none; adkim=r; aspf=r314
54v=DMARC1; p=none; rua=mailto:dmarc@smtp.mailtrap.live; ruf=mailto:dmarc@smtp.mailtrap.live; rf=afrf; pct=100303
55v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;fo=1299
56v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com296
57v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1296
58v=DMARC1; p=reject; sp=reject; pct=100; fo=1; ri=3600; rua=mailto:dmarcrecord@gmail.com; ruf=mailto:dmarcrecord@gmail.com;295
59v=DMARC1287
60v=DMARC1; p=none; rua=mailto:mailauth-reports@google.com267
61v=DMARC1; p=none; pct=100; rua=mailto:dmarc@fbl.optin.com;253
62v=DMARC1; p=none; rua=mailto:rua-mpse@mpub.ne.jp251
63v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100248
64v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400232
65v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com231
66v=DMARC1; p=reject; rua=mailto:zicaptxt@ag.dmarcian.com;225
67v=DMARC1;p=none;rua=mailto:rua@dmarc.brevo.com218
68v=DMARC1;p=none;sp=none;pct=50;adkim=r;aspf=r;214
69v=DMARC1;p=quarantine;213
70v=DMARC1; p=reject; rua=mailto:report@dmarc.amazon.com; ruf=mailto:report@dmarc.amazon.com203
71v=DMARC1; p=reject; adkim=s; aspf=s202
72v=DMARC1;p=none;pct=100;aspf=r;adkim=r;201
73v=DMARC1;p=none;rua=mailto:dmarc_report@service.aliyun.com196
74v=DMARC1; p=none; sp=none; rua=mailto:dmarc-raports@dhosting.pl194
75v=DMARC1; p=quarantine; sp=none; pct=100; ri=86400189
76v=DMARC1;p=none;pct=100;rua=mailto:dmarc@smtpeter.com181
77v=DMARC1; p=none; fo=1; ri=3600; rua=mailto:procter-gamble@rua.dmp.cisco.com; ruf=mailto:procter-gamble@ruf.dmp.cisco.com180
78v=DMARC1;p=none;pct=100175
79v=DMARC1; p=none; fo=1;175
80v=DMARC1; p=quarantine; adkim=s; aspf=s;173
81v=DMARC1; p=reject; adkim=r; aspf=r; pct=100;173
82v=DMARC1; p=none; rua=mailto:dmarc_agg@dmarc.everest.email; ruf=mailto:dmarc_fr@dmarc.everest.email; fo=1; pct=100; rf=afrf170
83v=DMARC1; p=quarantine; sp=none; rf=afrf; pct=100; ri=86400164
84v=DMARC1; p=none; pct=50;164
85v=DMARC1; p=none; aspf=r; adkim=r163
86v=DMARC1; p=none; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1157
87v=DMARC1; p=reject; rua=mailto:ewqfa0eu@ag.dmarcian.com; ruf=mailto:ewqfa0eu@fr.dmarcian.com; fo=1157
88v=DMARC1;p=none;pct=0;rua=mailto:dmarc@vercom.pl156
89v=DMARC1; p=none; rua=mailto:61e7fc8674b33@ag.eu.dmarcly.com; ruf=mailto:61e7fc8674b33@fo.eu.dmarcly.com; sp=none;155
90v=DMARC1; p=quarantine; fo=1151
91v=DMARC1;p=quarantine;pct=100151
92v=DMARC1; p=reject; sp=reject149
93v=DMARC1; p=none; rua=mailto:dmarc-rua@report.securemx.jp149
94v=DMARC1;""p=none;146
95v=DMARC1; p=none; pct=100; adkim=r; aspf=r146
96v=DMARC1; p=reject; rua=mailto:rua@dmarc.microsoft;ruf=mailto:ruf@dmarc.microsoft;fo=1:s:d146
97v=DMARC1; p=none; rua=mailto:dmarc.rua@edrone.app; ruf=mailto:dmarc.ruf@edrone.app145
98v=DMARC1; p=reject; aspf=s145
99v=DMARC1; p=reject; pct=100; adkim=s; aspf=s145
100v=DMARC1; p=reject; rua=mailto:d@rua.agari.com; ruf=mailto:d@ruf.agari.com145

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 104
2eforward5.registrar-servers.com9 104
3eforward1.registrar-servers.com9 096
4eforward2.registrar-servers.com9 091
5eforward3.registrar-servers.com9 070
6route1.mx.cloudflare.net7 072
7route3.mx.cloudflare.net7 069
8route2.mx.cloudflare.net7 069
9mailstore1.secureserver.net5 759
10smtp.secureserver.net5 736
11mx1.hostinger.com4 330
12mx2.hostinger.com4 300
13mx1-us1.ppe-hosted.com2 627
14mx2-us1.ppe-hosted.com2 610
15mx1-hosting.jellyfish.systems2 347
16mx2-hosting.jellyfish.systems2 345
17mx3-hosting.jellyfish.systems2 336
18nan2 329
19mx1.privateemail.com1 837
20mx2.privateemail.com1 818
21mx10.antispam.mailspamprotection.com1 655
22mx30.antispam.mailspamprotection.com1 655
23mx20.antispam.mailspamprotection.com1 653
24park-mx.above.com1 501
25mx156.hostedmxserver.com1 257
Show rows 26 – 100
#MX targetDomains
26mx1.mailchannels.net1 103
27mx2.mailchannels.net1 097
28mx.a.locaweb.com.br1 075
29mx1.hostinger.in1 073
30mx.b.locaweb.com.br1 068
31mx.jk.locaweb.com.br1 067
32mx2.hostinger.in1 062
33mx.stackmail.com1 047
34isaac.mx.cloudflare.net1 010
35amir.mx.cloudflare.net1 008
36linda.mx.cloudflare.net1 008
37mx.core.locaweb.com.br948
38mx01.hornetsecurity.com917
39mx02.hornetsecurity.com913
40mx03.hornetsecurity.com895
41mx04.hornetsecurity.com887
42us2.mx3.mailhostbox.com789
43us2.mx1.mailhostbox.com787
44us2.mx2.mailhostbox.com785
45mx.spamexperts.com747
46mxlb.ispgateway.de740
47mx20.mailspamprotection.com735
48mx10.mailspamprotection.com734
49mx30.mailspamprotection.com726
50fallbackmx.spamexperts.eu696
51smtpin.rzone.de696
52lastmx.spamexperts.net685
53mx1.csof.net646
54mx2.csof.net646
55mx20.ukraine.com.ua616
56mx01.nicmail.ru614
57mx15.ukraine.com.ua611
58mx02.nicmail.ru603
59mx.securemx.jp603
60mx03.nicmail.ru598
61mx1.qiye.aliyun.com593
62localhost581
63mx1.forwardemail.net581
64mx2.forwardemail.net579
65dmail.kagoya.net578
66mx2.qiye.aliyun.com574
67mx3.qiye.aliyun.com566
68za-smtp-inbound-2.mimecast.co.za554
69za-smtp-inbound-1.mimecast.co.za552
70mta-gw.infomaniak.ch540
71mx1.feishu.cn539
72mx2.feishu.cn537
73mx3.feishu.cn536
74mail.register.it513
75mx.ukraine.com.ua508
76mailstream-east.mxrecord.io492
77mailstream-west.mxrecord.io490
78mail.h-email.net476
79mx002.netsol.xion.oxcs.net464
80mx001.netsol.xion.oxcs.net462
81mailstream-central.mxrecord.mx436
82mail.eye-mail.net429
83mx-biz.mail.am0.yahoodns.net407
84mx2-eu1.ppe-hosted.com405
85mx1-eu1.ppe-hosted.com404
86mx01.lolipop.jp346
87mx.serviciodecorreo.es325
88mx1.dreamhost.com320
89mx2.dreamhost.com316
90mx1.spaceweb.ru316
91mx2.spaceweb.ru313
92mx01.udag.de298
93mx-01-us-west-2.prod.hydra.sophos.com298
94mx00.udag.de296
95mx-01-eu-central-1.prod.hydra.sophos.com295
96mx-02-us-west-2.prod.hydra.sophos.com294
97mx-02-eu-central-1.prod.hydra.sophos.com291
98kr1-aspmx1.worksmobile.com284
99mx01.cloud.vadesecure.com273
100mx02.cloud.vadesecure.com272

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 299
2_spf.mx.cloudflare.net8 513
3secureserver.net8 351
4relay.mailchannels.net6 854
5_spf.mail.hostinger.com6 346
6zoho.com5 918
7_spf.mlsend.com5 799
8mx.ovh.com4 865
9websitewelcome.com4 351
10us._netblocks.mimecast.com4 273
11emsd1.com3 771
12emailsrvr.com3 387
13spf.web-hosting.com2 945
14_spf.createsend.com2 899
15helpscoutemail.com2 864
16beget.com2 854
17spf.mail.qq.com2 818
18mxsspf.sendpulse.com2 577
19spf.ess.barracudanetworks.com2 544
20zcsend.net2 406
21_spf-eu.ionos.com2 398
22stspg-customer.com2 359
23eu._netblocks.mimecast.com2 309
24spf.sender.xserver.jp1 994
25transmail.net1 922
Show rows 26 – 100
#SPF includeDomains
26spf.emailsignatures365.com1 851
27_netblocks.mimecast.com1 846
28_spf.rdstation.com.br1 829
29spf.messagingengine.com1 657
30musvc.com1 525
31spf.crsend.com1 506
32spf.mxhichina.com1 446
33spf.exclaimer.net1 435
34aspmx.googlemail.com1 430
35_mailcust.gandi.net1 397
36spf.titan.email1 384
37spf.antispamcloud.com1 377
38spf.tmes.trendmicro.com1 375
39spf.messagelabs.com1 355
40_spf.timeweb.ru1 332
41netblocks.dreamhost.com1 328
42spf.163.com1 275
43spf.securedserverspace.com1 271
44_incspfcheck.mailspike.net1 270
45_spf.locaweb.com.br1 240
46relay.mailbaby.net1 203
47outboundmail.blackbaud.net1 193
48spf.brevo.com1 186
49zohomail.com1 170
50_spf.kundenserver.de1 157
51spf.dynect.net1 142
52spf.hornetsecurity.com1 132
53spf.smtp2go.com1 118
54authsmtp.com1 082
55spf2.esputnik.com1 074
56_spf.perfora.net1 065
57one.zoho.com1 047
58spf.stackmail.com1 046
59_spf.jupiter.salesmanago.pl1 027
60_spf.aruba.it1 023
61_spf.ukraine.com.ua977
62_spf.mailspamprotection.com976
63mxsmtp.sendpulse.com973
64_spf.hostedemail.com934
65_spf.hosting.reg.ru906
66_spf.mailhostbox.com905
67spfa.cpmails.com888
68spf-bma.mpme.jp886
69ispgateway.de884
70spfa.mailendo.com864
71spf.ipzmarketing.com840
72_spf.emaillabs.net.pl814
73spf.eu.exclaimer.net791
74cmail1.com790
75spf.mysecurecloudhost.com784
76spf.improvmx.com779
77spf.qiye.aliyun.com741
78agenturserver.de739
79spf-de.emailsignatures365.com737
80kagoya.net735
81turbo-smtp.com725
82bluehost.com724
83spf.retailcrm.pro720
84spf.afas.online720
85zoho.in717
86_spf.kmitd.com714
87mailcontrol.com706
88_spf.dashasender.ru697
89_spf-us.ionos.com686
90usb._netblocks.mimecast.com684
91spf.mindbox.ru668
92au._netblocks.mimecast.com666
93eu.zcsend.net664
94spf.flowmailer.net663
95spf.webapps.net661
96spf.us.exclaimer.net653
97_auxspf.axspace.com650
98de._netblocks.mimecast.com649
99spf.infomaniak.ch644
100spf.nl2go.com642

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