Who uses what for email DAILY

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

685 366
Domains with MX
635 390
Domains with SPF
437 991
Domains with DMARC
685 366
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 5 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 / Other176 23025.71%
2Google Workspace151 42822.09%
3Microsoft 365116 35716.98%
4Generic / unmatched (mail.*)89 16313.01%
5Generic / unmatched (mx*.*)61 1658.92%
6Yandex 36012 1181.77%
7Mimecast11 2751.65%
8Generic / unmatched (smtp.*)8 5511.25%
9Zoho Mail7 2501.06%
10Amazon WorkMail5 0880.74%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11OVH Mail4 8010.7%
12QQ Mail (Tencent)4 3380.63%
13Mail.ru for Business3 9820.58%
141&1 IONOS3 2990.48%
15Cisco IronPort3 1570.46%
16Rackspace Email2 9740.43%
17Mailgun (inbound)2 4610.36%
18Hosted Email (Rackspace/IONOS)2 3430.34%
19Beget (RU)2 0900.3%
20Zoho Mail (EU)1 6960.25%
21Alibaba Mail (China)1 6760.24%
22Gandi Mail1 6200.24%
23FastMail1 5230.22%
24ProtonMail1 3540.2%
25Titan (Hostinger)1 2170.18%
26NetEase Mail1 1710.17%
27Timeweb (RU)1 0880.16%
28Zoho Mail (IN)8920.13%
29ImprovMX (forwarding)7880.11%
30Reg.ru6910.1%

Trend — last 5 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 8855.81%
2SendGrid (Twilio)30 5024.8%
3Mailgun26 4824.17%
4Mailchimp25 6894.04%
5Zendesk25 4164.0%
6Mandrill24 0233.78%
7Salesforce16 6142.61%
8Mailjet (Sinch)13 3282.1%
9Brevo (ex-Sendinblue)7 6081.2%
10Elastic Email4 6830.74%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Marketo (Adobe)3 7460.59%
12Unisender (RU)3 6300.57%
13SparkPost2 8550.45%
14Postmark2 7450.43%
15Salesforce Marketing Cloud2 2080.35%
16Constant Contact2 1420.34%
17MailerSend1 7320.27%
18Freshdesk1 6290.26%
19SMTP.com1 3780.22%
20Sailthru7030.11%
21SMTP.BZ6850.11%
22GetResponse5200.08%
23Customer.io5130.08%
24Eloqua (Oracle)3180.05%
25HubSpot440.01%
26Intercom310.0%
27Klaviyo100.0%
28Dotdigital50.0%
29Omnisend40.0%
30AWeber30.0%

Trend — last 5 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)5 9080.93%
2Shopify5 7920.91%
3KnowBe43 6740.58%
4Atlassian (Jira/Confluence)2 0730.33%
5Trustpilot2 0110.32%
6Firebase (Google)1 7060.27%
7NetSuite (Oracle)1 2070.19%
8Qualtrics1 1770.19%
9BigCommerce1 1740.18%
10Lark / Feishu1 1290.18%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11Sage Intacct1 1030.17%
12Docebo (LMS)9990.16%
13Oracle Cloud Email9740.15%
14WordPress.com / WP Cloud9320.15%
15Oracle Cloud8300.13%
16ConnectWise7130.11%
17ClickDimensions6930.11%
18PayPal Braintree6700.11%
19Greenhouse6640.1%
20Autotask (ConnectWise)6550.1%
21UKG / UltiPro5760.09%
22HappyFox4800.08%
23Zendesk4740.07%
24FormAssembly4240.07%
25Shoptet3500.06%
26Chargebee3470.05%
27Odoo3210.05%
28Freshsales (Freshworks)2250.04%
29Gorgias1880.03%
30Squarespace1400.02%

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

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

Trend — last 5 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 410
2v=DMARC1; p=none34 091
3v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com6 775
4v=DMARC1;p=none;4 408
5v=DMARC1; p=quarantine;4 235
6v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com3 733
7v=DMARC1; p=quarantine3 554
8v=DMARC1; p=reject;3 382
9v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; ruf=mailto:dmarc@mailinblue.com!10m; rf=afrf; pct=100; ri=864002 773
10v=DMARC1; p=none; aspf=r; adkim=r;2 701
11v=DMARC1; p=reject2 605
12v=DMARC1; p=quarantine; adkim=s; aspf=s2 432
13v=DMARC1; p=quarantine; pct=1002 247
14v=DMARC1;p=none1 791
15v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;1 781
16v=DMARC1; p=none; aspf=r; sp=none1 676
17v=DMARC1;p=quarantine;pct=100;fo=11 520
18v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email1 500
19v=DMARC1; p=none; adkim=r; aspf=r;1 461
20v=DMARC1; p=reject; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;1 449
21v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com1 362
22v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email;1 304
23v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=864001 287
24v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email1 273
25v=DMARC1; p=none; sp=none;1 145
Show rows 26 – 100
#DMARC recordDomains
26v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;1 103
27v=DMARC1; p=none; sp=none993
28v=DMARC1;p=reject;967
29v=DMARC1; p=none; pct=100802
30v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email747
31v=DMARC1; p=reject; pct=100722
32v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s633
33v=DMARC1; p=none; sp=none; rf=afrf; pct=100; ri=86400603
34v=DMARC1; p=reject; pct=100;592
35v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com578
36v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com561
37v=DMARC1;p=quarantine;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400532
38v=DMARC1; p=quarantine; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com525
39v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;504
40v=DMARC1;p=quarantine496
41v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com496
42v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email;489
43v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email;475
44v=DMARC1; p=quarantine; pct=100;458
45v=DMARC1; p=none; pct=100;453
46v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s413
47v=DMARC1; p=none; sp=none; adkim=r; aspf=r390
48v=DMARC1;p=reject;fo=1;rua=mailto:dmarc_rua@emaildefense.proofpoint.com;ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com386
49v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;379
50v=DMARC1; p=none; fo=1365
51v=DMARC1; p=none; rua=mailto:dmarc@smtp.mailtrap.live; ruf=mailto:dmarc@smtp.mailtrap.live; rf=afrf; pct=100356
52v=DMARC1; p=reject; adkim=s; aspf=s;338
53v=DMARC1; p=none; adkim=r; aspf=r322
54v=DMARC1;p=reject321
55v=DMARC1; p=reject; sp=none; rf=afrf; pct=100; ri=86400320
56v=DMARC1310
57v=DMARC1; p=reject; sp=reject; pct=100; fo=1; ri=3600; rua=mailto:dmarcrecord@gmail.com; ruf=mailto:dmarcrecord@gmail.com;290
58v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;fo=1289
59v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1270
60v=DMARC1; p=none; rua=mailto:mailauth-reports@google.com261
61v=DMARC1; p=none; rua=mailto:rua-mpse@mpub.ne.jp254
62v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net;252
63v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com252
64v=DMARC1;p=quarantine;249
65v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100248
66v=DMARC1; p=reject; rua=mailto:report@dmarc.amazon.com; ruf=mailto:report@dmarc.amazon.com247
67v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com243
68v=DMARC1;p=none;sp=none;pct=50;adkim=r;aspf=r;240
69v=DMARC1; p=none; pct=100; rua=mailto:dmarc@fbl.optin.com;228
70v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400225
71v=DMARC1; p=reject; rua=mailto:zicaptxt@ag.dmarcian.com;221
72v=DMARC1;p=none;rua=mailto:rua@dmarc.brevo.com220
73v=DMARC1; p=reject; adkim=s; aspf=s217
74v=DMARC1;p=none;pct=100;aspf=r;adkim=r;210
75v=DMARC1; p=none; aspf=r; adkim=r209
76v=DMARC1;p=none;rua=mailto:dmarc_report@service.aliyun.com206
77v=DMARC1;p=none;pct=100197
78v=DMARC1; p=none; sp=none; rua=mailto:dmarc-raports@dhosting.pl188
79v=DMARC1; p=quarantine; adkim=s; aspf=s;188
80v=DMARC1; p=none; rua=mailto:dmarc@newsletters.visualsoft.co.uk; aspf=r; adkim=r; ri=86400; fo=1178
81v=DMARC1; p=none; rua=mailto:dmarc.rua@edrone.app; ruf=mailto:dmarc.ruf@edrone.app172
82v=DMARC1; p=quarantine; sp=none; rf=afrf; pct=100; ri=86400171
83v=DMARC1; p=none; rua=mailto:abuse@mailbiz.com.br; ruf=mailto:abuse@mailbiz.com.br169
84v=DMARC1; p=none; pct=50;168
85v=DMARC1;p=none;pct=0;rua=mailto:dmarc@vercom.pl164
86v=DMARC1; p=none; pct=100; fo=1; ri=3600; rua=mailto:1dd3f5c7@inbox.ondmarc.com; ruf=mailto:1dd3f5c7@inbox.ondmarc.com;162
87v=DMARC1; p=none; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1158
88v=DMARC1; p=quarantine; fo=1157
89v=DMARC1; p=none; rua=mailto:dmarc_agg@dmarc.everest.email; ruf=mailto:dmarc_fr@dmarc.everest.email; fo=1; pct=100; rf=afrf157
90v=DMARC1; p=reject; sp=reject156
91v=DMARC1; p=quarantine; sp=none; pct=100; ri=86400154
92v=DMARC1; p=none; rua=mailto:dmarc-rua@report.securemx.jp154
93v=DMARC1;p=none;pct=100;rua=mailto:dmarc@smtpeter.com151
94v=DMARC1; p=none; fo=1;151
95v=DMARC1; p=reject; pct=100; adkim=s; aspf=s151
96v=DMARC1; p=reject; adkim=r; aspf=r; pct=100;150
97v=DMARC1; p=none; rua=mailto:61e7fc8674b33@ag.eu.dmarcly.com; ruf=mailto:61e7fc8674b33@fo.eu.dmarcly.com; sp=none;150
98v=DMARC1;p=reject;pct=100148
99v=DMARC1;p=quarantine;pct=100147
100v=DMARC1; p=quarantine; sp=quarantine146

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
1eforward5.registrar-servers.com8 103
2eforward1.registrar-servers.com8 100
3eforward4.registrar-servers.com8 096
4eforward2.registrar-servers.com8 090
5eforward3.registrar-servers.com8 076
6route1.mx.cloudflare.net7 640
7route3.mx.cloudflare.net7 636
8route2.mx.cloudflare.net7 636
9mailstore1.secureserver.net5 932
10smtp.secureserver.net5 930
11mx1.hostinger.com5 033
12mx2.hostinger.com5 009
13mx1-us1.ppe-hosted.com2 637
14mx2-us1.ppe-hosted.com2 613
15nan2 553
16mx2-hosting.jellyfish.systems2 169
17mx3-hosting.jellyfish.systems2 167
18mx1-hosting.jellyfish.systems2 158
19mx1.privateemail.com1 870
20mx2.privateemail.com1 856
21mx10.antispam.mailspamprotection.com1 812
22mx20.antispam.mailspamprotection.com1 809
23mx30.antispam.mailspamprotection.com1 809
24mx1.hostinger.in1 081
25mx01.hornetsecurity.com1 076
Show rows 26 – 100
#MX targetDomains
26mx2.hostinger.in1 073
27mx02.hornetsecurity.com1 070
28mx1.mailchannels.net1 052
29mx2.mailchannels.net1 045
30mx03.hornetsecurity.com1 044
31mx04.hornetsecurity.com1 038
32isaac.mx.cloudflare.net975
33mx.a.locaweb.com.br973
34linda.mx.cloudflare.net973
35amir.mx.cloudflare.net972
36mx.b.locaweb.com.br960
37mx.jk.locaweb.com.br957
38mx.stackmail.com910
39mx.core.locaweb.com.br870
40mx.plingest.com805
41us2.mx1.mailhostbox.com802
42us2.mx3.mailhostbox.com801
43us2.mx2.mailhostbox.com800
44park-mx.above.com793
45mx.spamexperts.com747
46smtpin.rzone.de734
47mx1.qiye.aliyun.com731
48mx2.qiye.aliyun.com714
49mx3.qiye.aliyun.com706
50fallbackmx.spamexperts.eu698
51lastmx.spamexperts.net688
52mx20.mailspamprotection.com682
53mx10.mailspamprotection.com678
54mx30.mailspamprotection.com672
55mxlb.ispgateway.de653
56mx1.feishu.cn633
57mx2.feishu.cn633
58mx3.feishu.cn633
59localhost617
60mta-gw.infomaniak.ch607
61mail.h-email.net602
62mx.securemx.jp599
63dmail.kagoya.net595
64mx1.forwardemail.net562
65mx2.forwardemail.net560
66za-smtp-inbound-1.mimecast.co.za555
67za-smtp-inbound-2.mimecast.co.za553
68mx20.ukraine.com.ua539
69mx15.ukraine.com.ua534
70mx1.csof.net494
71mx2.csof.net494
72mail.register.it491
73mx01.nicmail.ru482
74mx.ukraine.com.ua475
75mx02.nicmail.ru470
76mx03.nicmail.ru470
77mailstream-east.mxrecord.io464
78mailstream-west.mxrecord.io462
79mx001.netsol.xion.oxcs.net451
80mx002.netsol.xion.oxcs.net451
81mx1-eu1.ppe-hosted.com425
82mx2-eu1.ppe-hosted.com420
83mailstream-central.mxrecord.mx418
84mail410
85mx-biz.mail.am0.yahoodns.net394
86mx01.lolipop.jp387
87mx.serviciodecorreo.es361
88mx1.larksuite.com345
89mx2.larksuite.com345
90mx3.larksuite.com345
91mx1.123-reg.co.uk327
92mx0.123-reg.co.uk325
93alltheemails.com315
94mx01.udag.de313
95mx00.udag.de311
96mx-01-eu-central-1.prod.hydra.sophos.com307
97in.arubabusiness.it302
98mx-02-eu-central-1.prod.hydra.sophos.com301
99mxext2.mailbox.org297
100mxext1.mailbox.org296

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
1secureserver.net9 578
2_spf.mx.cloudflare.net9 088
3spf.efwd.registrar-servers.com8 336
4_spf.mail.hostinger.com7 018
5relay.mailchannels.net6 547
6_spf.mlsend.com6 127
7zoho.com5 939
8mx.ovh.com5 218
9us._netblocks.mimecast.com4 177
10websitewelcome.com4 079
11emsd1.com3 550
12emailsrvr.com3 375
13_spf.createsend.com2 894
14spf.mail.qq.com2 817
15helpscoutemail.com2 759
16spf.web-hosting.com2 699
17_spf-eu.ionos.com2 590
18spf.ess.barracudanetworks.com2 550
19zcsend.net2 486
20mxsspf.sendpulse.com2 354
21beget.com2 335
22stspg-customer.com2 315
23eu._netblocks.mimecast.com2 251
24spf.sender.xserver.jp2 215
25transmail.net1 962
Show rows 26 – 100
#SPF includeDomains
26spf.emailsignatures365.com1 817
27_spf.rdstation.com.br1 758
28_netblocks.mimecast.com1 688
29zohomail.com1 644
30spf.messagingengine.com1 587
31spf.crsend.com1 559
32musvc.com1 515
33spf.brevo.com1 473
34spf.mxhichina.com1 450
35spf.exclaimer.net1 401
36_mailcust.gandi.net1 399
37spf.titan.email1 362
38spf.antispamcloud.com1 349
39spf.tmes.trendmicro.com1 329
40aspmx.googlemail.com1 313
41spf.163.com1 306
42spf.hornetsecurity.com1 301
43_incspfcheck.mailspike.net1 243
44netblocks.dreamhost.com1 240
45spf.messagelabs.com1 227
46_spf.kundenserver.de1 206
47_spf.timeweb.ru1 149
48_spf.locaweb.com.br1 148
49spf.smtp2go.com1 146
50one.zoho.com1 121
51_spf.perfora.net1 111
52relay.mailbaby.net1 099
53spfa.cpmails.com1 084
54outboundmail.blackbaud.net1 077
55_spf.aruba.it1 077
56_spf.hostedemail.com1 055
57spf.dynect.net1 052
58spf.securedserverspace.com1 039
59authsmtp.com1 037
60spf2.esputnik.com1 026
61_spf.jupiter.salesmanago.pl1 021
62spf.stackmail.com962
63_spf.ukraine.com.ua951
64spf.ipzmarketing.com915
65_spf.mailhostbox.com910
66spf.qiye.aliyun.com900
67spfa.mailendo.com899
68spf-bma.mpme.jp892
69spf.mysecurecloudhost.com886
70ispgateway.de885
71_spf.mailspamprotection.com877
72spf-de.emailsignatures365.com866
73_spf.hosting.reg.ru811
74_spf.emaillabs.net.pl806
75zoho.in800
76spf.eu.exclaimer.net797
77mxsmtp.sendpulse.com782
78usb._netblocks.mimecast.com778
79kagoya.net756
80spf.improvmx.com749
81agenturserver.de736
82_spf.kmitd.com729
83spf.infomaniak.ch724
84cmail1.com723
85bluehost.com716
86turbo-smtp.com699
87de._netblocks.mimecast.com699
88spf.us.exclaimer.net695
89_spf-us.ionos.com694
90eu.zcsend.net691
91spf.webapps.net683
92au._netblocks.mimecast.com665
93spf.afas.online658
94_spf.dashasender.ru657
95eu.transmail.net651
96spf.bmv.jp641
97mailcontrol.com633
98sendersrv.com632
99spf.flowmailer.net626
100spf.nl2go.com625

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