Who uses what for email DAILY

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

1 177 952
Domains with MX
806 744
Domains with SPF
0
Domains with DMARC
1 177 952
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-Hosted450 48738.24%
2Google Workspace201 56217.11%
3Unknown / Other97 5528.28%
4Microsoft 36582 0466.97%
5Generic / unmatched (mx*.*)50 6464.3%
6GoDaddy36 0843.06%
7Yandex 36031 3142.66%
8Generic / unmatched (mail.*)20 3091.72%
9Zoho Mail14 9471.27%
10OVH Mail11 5580.98%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11SpamExperts (SolarWinds)9 4950.81%
12Namecheap Email Forwarding8 7020.74%
13Beget (RU)8 2770.7%
14Mimecast8 2760.7%
15Rackspace Email8 2110.7%
16QQ Mail (Tencent)7 6230.65%
17Proofpoint6 3150.54%
18Hosted Email (Rackspace/IONOS)5 5590.47%
191&1 IONOS4 9880.42%
20DreamHost4 8510.41%
21Mail.ru for Business4 3790.37%
22Symantec MessageLabs4 2860.36%
23Barracuda3 6670.31%
24All-Inkl (DE)3 5460.3%
25Hostinger3 4870.3%
26Strato (DE)3 3970.29%
27Mailgun (inbound)3 0140.26%
28Timeweb (RU)2 9230.25%
29Gandi Mail2 8300.24%
30ISPGateway (DE)2 8170.24%

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
14.52%
171 009 domains
Unique unmatched MX hosts
56 498
individual hostnames in the long tail
Self-hosted
38.26%
450 632 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
1Mailchimp34 7674.31%
2SendGrid (Twilio)30 2203.75%
3Mandrill27 5323.41%
4Zendesk24 9633.09%
5Mailgun18 1002.24%
6Amazon SES13 9181.73%
7MailChannels9 2951.15%
8Namecheap Forwarding9 1841.14%
9SpamExperts (SolarWinds)8 9731.11%
10Mailjet (Sinch)6 7510.84%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Mimecast6 6080.82%
12Salesforce4 1470.51%
13Elastic Email3 8090.47%
14SparkPost3 6200.45%
15Marketo (Adobe)3 5250.44%
16Postmark3 3030.41%
17Unisender (RU)2 8100.35%
18MailHostBox2 7690.34%
19Locaweb (BR)2 6720.33%
20Help Scout2 3330.29%
21Brevo (ex-Sendinblue)2 1740.27%
22SMTP2GO1 8460.23%
23SendPulse1 8450.23%
24A Random Server (parking)1 6950.21%
25Constant Contact1 6760.21%
26Barracuda Essentials1 5860.2%
27Freshdesk1 5050.19%
28MailerSend1 4680.18%
29Exclaimer (signatures)1 3510.17%
30Host-H (BG)1 3360.17%

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)4 6810.58%
2BigCommerce1 9850.25%
3Trustpilot1 7820.22%
4Shopify1 7480.22%
5Statuspage (Atlassian)1 3420.17%
6CodeTwo Email Signatures 3659820.12%
7Qualtrics9340.12%
8ClickDimensions8750.11%
9Zendesk7820.1%
10PayPal Braintree7280.09%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11NetSuite (Oracle)6880.09%
12Firebase (Google)5770.07%
13RetailCRM4160.05%
14Squarespace3880.05%
15Atlassian (Jira/Confluence)3810.05%
16KnowBe43750.05%
17Freshsales (Freshworks)3050.04%
18Greenhouse2990.04%
19One.com (DK hosting)2750.03%
20ConnectWise2000.02%
21Docebo (LMS)1970.02%
22SchoolMessenger1910.02%
23Shoptet1770.02%
24Autotask (ConnectWise)1550.02%
25Recurly1550.02%
26Brightspace (D2L)1390.02%
27pair Networks1340.02%
28Gannett (USA Today)1220.02%
29Umantis (Haufe HR)1050.01%
30Sage Intacct900.01%

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▼ -46.78%30d ago▼ -46.00%90d ago▼ -45.15%1y ago▼ -42.73%

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
1mx01.1and1.com4 139
2mx00.1and1.com4 127
3smx2.web-hosting.com3 707
4smx1.web-hosting.com3 578
5smx3.web-hosting.com3 577
6p.webcom.ctmail.com2 569
7mx-biz.mail.am0.yahoodns.net1 766
8mx1.netsolmail.net1 756
9mx01.1and1.es1 678
10mx01.1and1.co.uk1 671
11mx00.1and1.es1 669
12mx00.1and1.co.uk1 657
13mx01.1and1.fr1 575
14mx00.1and1.fr1 570
15mx1.jimdo.com1 087
16mx2.jimdo.com1 086
17mail.net4india.com942
18mx7.webfaction.com798
19mx8.webfaction.com793
20localhost785
21mx9.webfaction.com780
22mx-backup.serveriai.lt777
23mx00.schlund.de727
24mx01.schlund.de727
25mail3.eqx.gridhost.co.uk699
Show rows 26 – 100
#MX targetDomains
26asp.reflexion.net673
27mx76.mb1p.com641
28mx76.m2bp.com641
29mx1.filterantispam.com608
30mx2.filterantispam.com600
31smtp-fwd.wordpress.com550
32mx-100.reflexion.net515
33smtp-scan01.mx.reflected.net511
34mx.unoeuro.com504
35mx-110.reflexion.net499
36in.hes.trendmicro.eu457
37mx-in03b.natrohost.com446
38mx-in03.natrohost.com443
39webmail2.sitebuildit.com435
40mx2.tmdhosting.com409
41mx1.tmdhosting.com406
42sitemail.everyone.net405
43mx3.volusion.com403
44mx4.volusion.com402
45igw5002.site4now.net390
46mailgw.nic.in384
47relay1.netnames.net370
48relay2.netnames.net370
49mx1.cloudhosting.co.uk367
50mx2.cloudhosting.co.uk367
51mx1.supremebox.com346
52mx2.supremebox.com344
53posta2.mediacenter.hu335
54posta.mediacenter.hu334
55posta3.mediacenter.hu334
56posta4.mediacenter.hu334
57posta5.mediacenter.hu332
58inbound.registeredsite.com306
59mx4.name.com292
60mx7.name.com292
61mx5.name.com291
62mx3.name.com291
63mx6.name.com290
64mx8.name.com290
65mx1.inbox.co.il284
66mx07.register.com282
67mx1.zone.eu282
68mx1.emailowl.com281
69mx2.zone.eu281
70smx4.web-hosting.com281
71mx2.emailowl.com278
72mx3.emailowl.com277
73mx-in01.natrohost.com275
74mx-in01b.natrohost.com275
751-grid-mx01.co.za253
761-grid-mx02.com253
771-grid-mx03.co.za253
781-grid-mx04.com252
79mail.b-io.co250
80mx-in02.natrohost.com246
81mx-in02b.natrohost.com245
82mail-fr.securemail.pro243
83mx1d10.thinline.cz241
84mx1b20.thinline.cz239
85mx.usa.net230
86antispam1.ihs.com.tr228
87antispam2.ihs.com.tr228
88mail-s30.1gb.ru221
89webmail.mail.maxns.net219
90nan216
91ntvirus.url.com.tw213
92ntvirus2.url.com.tw211
93mx247.in-mx.com209
94mx247.in-mx.net209
95mailme.enter-system.com209
96gmail22.gadmail.de203
97gmail23.gadmail.de203
98wmail22.gadmail.de203
99wmail23.gadmail.de203
100mx-cache.online.net198

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
1bluehost.com9 970
2spf1.mailchannels.net2 510
3spf2.mailchannels.net2 484
4cmail1.com1 549
5hostmonster.com1 459
6outlook.com1 403
7spf.hostmar.com1 337
8nicmail.ru1 321
9_spf.fastmail.gr1 249
10_spf.websupport.sk1 192
11infusionmail.com1 189
12_spfcls.natrohost.com1 154
13_netblockshalon.natrohost.com1 150
14beget.ru1 045
15spf.serveriai.lt1 039
16spf.mail.intercom.io1 000
17spf.linuxpl.com873
18spf.hes.trendmicro.com779
19hotmail.com776
20_spf-client-servers.sitesellmail.com742
21justhost.com719
22spf.webapps.net693
23spf.autopilothq.com673
24icpbounce.com639
25e2ma.net632
Show rows 26 – 100
#SPF includeDomains
26_spf.emfwd.name-services.com630
27spf.nl2go.com628
28spf.tld.pl627
29mailcontrol.com600
30getcourse.ru562
31msgfocus.com558
32reflexion.net546
33relay.sered.net532
34spf.whservidor.com531
35_spf.turhost.com524
36gridhost.co.uk516
37_spf.heteml.jp515
38smtp-out.spf.superhosting.bg513
39_spf.hoster.by512
40google.com505
41_spf.anpdm.com505
42appriver.com501
43spf.mailcluster.com.au478
44bmsend.com477
45_spf.srv.cat472
46turbo-smtp.com471
47_spf.zenbox.pl467
48_spf.transip.email464
49spf.masterbase.com451
50gmail.com447
51_spf.syrahost.com447
52sharepointonline.com445
53spf.hostedmail.net.au439
54ncfp.asia435
55_spf.uni5.net433
56_spf.protection.veridyen.com423
57outboundmail.convio.net410
58spf.raiolanetworks.com407
59spf1.auinmeio.com.br401
60spf.secure.ne.jp398
61spf2.auinmeio.com.br395
62spf.zixsmbhosted.com393
63send.aweber.com392
64spf.smartemailing.cz391
65spf.aserv.co.za389
66_spf.daum.net388
67smtp.groovehq.com384
68_spf.site4now.net378
69smtp1.uservoice.com377
70salesforce.com373
71email-od.com373
72_spf.mixhost.jp370
73_spf.zdsys.com366
74spf.dondominio.com362
75_spf.domeneshop.no362
76spf.protection.3dcart.com357
77spf.hekko.pl353
78email.freshservice.com350
79datadrivenemail.com348
80mxlogic.net347
81_spf.act-on.net346
82_spf.embluemail.com343
83mh.blackboard.com328
84spf.mschosting.com325
85_mail.dhosting.pl322
86spf.digitalinsight.com316
87worldsecuresystems.com315
88md02.com312
89mojsite.com311
90mailanyone.net306
91_spf.acquia.com303
92netcore.co.in296
93spf.mailanyone.net294
94_netblocks.google.com291
95custspf.register.com290
96spf.get-n-post.ru276
97customer.mailguard.com.au276
98spf.v6send.net273
99spf.dominioabsoluto.net272
100rhostbh.com267

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 — 966 667 MX, 692 386 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 SPF2022-05-01 — 921 706 MX, 748 398 SPF2022-04-01 — 1 217 939 MX, 976 244 SPF2022-03-01 — 975 521 MX, 779 131 SPF2022-02-01 — 569 414 MX, 464 224 SPF2022-01-01 — 552 174 MX, 447 427 SPF2021-12-01 — 786 477 MX, 631 833 SPF2021-11-01 — 525 808 MX, 424 311 SPF2021-10-01 — 794 460 MX, 633 349 SPF2021-09-01 — 788 407 MX, 628 585 SPF2021-08-01 — 619 384 MX, 493 457 SPF2021-07-01 — 728 817 MX, 579 133 SPF2021-06-01 — 660 453 MX, 523 956 SPF2021-05-01 — 788 324 MX, 620 170 SPF2021-04-01 — 792 560 MX, 621 808 SPF2021-03-01 — 646 458 MX, 507 824 SPF2021-02-01 — 430 383 MX, 339 425 SPF2021-01-01 — 714 286 MX, 554 817 SPF2020-12-01 — 814 029 MX, 629 118 SPF2020-11-01 — 748 490 MX, 574 865 SPF2020-10-01 — 618 268 MX, 476 027 SPF2020-09-01 — 768 508 MX, 586 561 SPF2020-08-01 — 754 330 MX, 572 036 SPF2020-07-01 — 947 188 MX, 717 066 SPF2020-06-01 — 703 956 MX, 531 244 SPF2020-05-01 — 965 680 MX, 721 262 SPF2020-04-01 — 859 917 MX, 639 926 SPF2020-03-01 — 780 292 MX, 579 459 SPF2020-02-01 — 947 773 MX, 696 310 SPF2020-01-01 — 565 274 MX, 417 038 SPF2019-12-01 — 826 277 MX, 600 095 SPF2019-11-01 — 1 039 570 MX, 747 867 SPF2019-10-01 — 966 667 MX, 692 386 SPF2019-09-01 — 838 362 MX, 594 935 SPF2019-08-01 — 1 162 343 MX, 819 141 SPF
Data source: https://openintel.nl/data/forward-dns/top-lists/
Generated automatically from OpenINTEL Tranco snapshot 2019-07-01. Aggregates only — raw OpenINTEL data is deleted after analysis per their data agreement.
Last build: 2026-04-29T13:00:03Z.