Who uses what for email DAILY

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

657 304
Domains with MX
616 494
Domains with SPF
456 363
Domains with DMARC
47.0%
DMARC enforced

What you're looking at. Headline numbers for the analysed Tranco snapshot: how many domains publish each kind of email-related DNS record, and what share of DMARC publishers actually enforce their policy (quarantine/reject). 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.

Key findings — 2026-07-09

Each statement is recomputed daily from the full dataset — cite freely, a link to this page is appreciated. Machine-readable version: api/latest.json · llms.txt.

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. Note: Cloudflare Email Routing also appears in the ESP table below — that is the same service observed through two different record types (MX here, SPF there), not a double count of domains.

#Mailbox providerDomainsShare of MX-having domains
1Self-Hosted →147 70222.47%
2Google Workspace →143 05321.76%
3Microsoft 365 →109 81116.71%
4Unknown / Other →51 0007.76%
5Generic / unmatched (mx*.*) →18 1502.76%
6Proofpoint →12 5051.9%
7Generic / unmatched (mail.*) →11 5341.75%
8Yandex 360 →10 7711.64%
9Cloudflare Email Routing →10 4701.59%
10Mimecast →9 9961.52%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11Hostinger →7 9281.21%
12Namecheap Email Forwarding →6 9471.06%
13Zoho Mail →6 7951.03%
14QQ Mail (Tencent) →5 4660.83%
15GoDaddy →4 9800.76%
16Amazon WorkMail →4 6720.71%
17OVH Mail →4 6440.71%
181&1 IONOS →3 6100.55%
19Mail.ru for Business →3 5090.53%
20Barracuda →3 4700.53%
21Jellyfish (Namecheap) →2 8930.44%
22Proofpoint Essentials →2 8180.43%
23SpamExperts (SolarWinds) →2 6670.41%
24Cisco IronPort →2 6350.4%
25Mailgun (inbound) →2 2950.35%
26Beget (RU) →2 2610.34%
27Rackspace Email →2 2100.34%
28Alibaba Mail (China) →2 0720.32%
29Zoho Mail (EU) →1 7930.27%
30Hosted Email (Rackspace/IONOS) →1 7460.27%
🏠 Open Providers portfolio → cards with country, blurb, sparkline & TLD breakdown — click any provider name above to drill into a detail page

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
12.43%
81 704 domains
Unique unmatched MX hosts
36 522
individual hostnames in the long tail
Self-hosted
22.5%
147 879 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 SES →38 3446.22%
2SendGrid (Twilio) →29 2434.74%
3Mailgun →25 3254.11%
4Zendesk →23 8383.87%
5Mailchimp →22 7253.69%
6Mandrill →20 7153.36%
7HubSpot →19 6183.18%
8Salesforce →16 1122.61%
9Mailjet (Sinch) →13 1152.13%
10Cloudflare Email Routing →11 0941.8%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Brevo (ex-Sendinblue) →8 7711.42%
12Mimecast →8 7501.42%
13MailerSend →7 8971.28%
14Namecheap Forwarding →7 2061.17%
15MailChannels →6 5981.07%
16Elastic Email →4 3610.71%
17Constant Contact →3 5270.57%
18Unisender (RU) →3 5080.57%
19Campaign Monitor →3 4510.56%
20Marketo (Adobe) →3 2450.53%
21Zoho Campaigns →3 1920.52%
22Emsd1 (transactional) →2 9540.48%
23Postmark →2 9160.47%
24SendPulse →2 8710.47%
25Exclaimer (signatures) →2 6530.43%
26SparkPost →2 6280.43%
27Zoho ZeptoMail →2 6250.43%
28Help Scout →2 2950.37%
29Salesforce Marketing Cloud →2 2070.36%
30Barracuda Essentials →2 1340.35%
📮 Open Mailing services portfolio → all detected ESPs with descriptions, country, sparklines — click any ESP above to drill into a detail page

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
1Shopify →5 3290.86%
2Pardot (Salesforce) →4 8370.78%
3CodeTwo Email Signatures 365 →4 3470.71%
4KnowBe4 →3 4360.56%
5Statuspage (Atlassian) →2 0930.34%
6Trustpilot →1 8270.3%
7Atlassian (Jira/Confluence) →1 8260.3%
8Firebase (Google) →1 8160.29%
9Lark / Feishu →1 2920.21%
10BigCommerce →1 2740.21%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11Sage Intacct →1 1180.18%
12NetSuite (Oracle) →1 1080.18%
13Qualtrics →1 0850.18%
14Oracle Cloud Email →1 0580.17%
15WordPress.com / WP Cloud →9170.15%
16Docebo (LMS) →9150.15%
17Oracle Cloud →8190.13%
18One.com (DK hosting) →7840.13%
19Zoho Books →6960.11%
20AFAS →6550.11%
21Greenhouse →6090.1%
22SAP SuccessFactors →5830.09%
23PayPal Braintree →5730.09%
24ClickDimensions →5630.09%
25UKG / UltiPro →5420.09%
26Autotask (ConnectWise) →4800.08%
27TOPdesk →4530.07%
28FormAssembly →4460.07%
29ConnectWise →4350.07%
30Freshservice (Freshworks) →4260.07%
📧 Open SaaS/ESP senders portfolio → SaaS apps sending FROM customer domains — click any SaaS name above for detail

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▼ -0.18%30d ago▼ -0.38%

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;57 378
2v=DMARC1; p=none32 518
3v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com8 740
4v=DMARC1; p=quarantine;4 885
5v=DMARC1; p=quarantine3 954
6v=DMARC1; p=reject;3 793
7v=DMARC1;p=none;3 644
8v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;3 595
9v=DMARC1; p=quarantine; adkim=s; aspf=s3 145
10v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com3 095
11v=DMARC1; p=reject2 834
12v=DMARC1; p=none; aspf=r; adkim=r;2 387
13v=DMARC1; p=quarantine; pct=1002 316
14v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;2 070
15v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; ruf=mailto:dmarc@mailinblue.com!10m; rf=afrf; pct=100; ri=864002 069
16v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc.report@axa.com;1 910
17v=DMARC1;p=none1 781
18v=DMARC1; p=none; aspf=r; sp=none1 704
19v=DMARC1; p=none; adkim=r; aspf=r;1 506
20v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;1 429
21v=DMARC1;p=quarantine;pct=100;fo=11 272
22v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email1 260
23v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=864001 220
24v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email1 206
25v=DMARC1;p=reject;1 195
Show rows 26 – 100
#DMARC recordDomains
26v=DMARC1; p=reject; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;1 033
27v=DMARC1; p=none; sp=none1 022
28v=DMARC1; p=none; sp=none;985
29v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email;960
30v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com880
31v=DMARC1; p=reject; rua=mailto:report@dmarc.amazon.com; ruf=mailto:report@dmarc.amazon.com876
32v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s822
33v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email755
34v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:ewai10d2@ag.eu.dmarcian.com; ruf=mailto:ewai10d2@fr.eu.dmarcian.com734
35v=DMARC1; p=none; pct=100710
36v=DMARC1; p=reject; pct=100709
37v=DMARC1; p=quarantine; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com707
38v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com665
39v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net; adkim=r; aspf=r;654
40v=DMARC1;p=quarantine;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400651
41v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com617
42v=DMARC1; p=none; sp=none; rf=afrf; pct=100; ri=86400553
43v=DMARC1; p=quarantine; pct=100;520
44v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com507
45v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email;506
46v=DMARC1;p=quarantine502
47v=DMARC1; p=reject; pct=100;451
48v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email;422
49v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s420
50v=DMARC1; p=reject; adkim=s; aspf=s;377
51v=DMARC1; p=none; sp=none; adkim=r; aspf=r377
52v=DMARC1; p=none; adkim=r; aspf=r375
53v=DMARC1; p=none; pct=100;353
54v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1349
55v=DMARC1327
56v=DMARC1; p=reject; sp=none; rf=afrf; pct=100; ri=86400325
57v=DMARC1;p=reject320
58v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;314
59v=DMARC1;p=reject;fo=1;rua=mailto:dmarc_rua@emaildefense.proofpoint.com;ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com309
60v=DMARC1; p=reject; adkim=s; aspf=s307
61v=DMARC1; p=reject; sp=reject; pct=100; fo=1; ri=3600; rua=mailto:dmarcrecord@gmail.com; ruf=mailto:dmarcrecord@gmail.com;304
62v=DMARC1; p=none; fo=1300
63v=DMARC1;p=quarantine;299
64v=DMARC1; p=none; rua=mailto:dmarc@smtp.mailtrap.live; ruf=mailto:dmarc@smtp.mailtrap.live; rf=afrf; pct=100297
65v=DMARC1; p=reject; rua=mailto:tnoff9hr@ag.eu.dmarcadvisor.com; aspf=s; adkim=s;289
66v=DMARC1; p=none; aspf=r; adkim=r286
67v=DMARC1; p=none; rua=mailto:mailauth-reports@google.com273
68v=DMARC1;p=none;sp=none;pct=50;adkim=r;aspf=r;269
69v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400268
70v=DMARC1;p=none;pct=100263
71v=DMARC1;p=none;rua=mailto:dmarc_report@service.aliyun.com250
72v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;fo=1243
73v=DMARC1; p=quarantine; rua=mailto:rua@dmarc.brevo.com233
74v=DMARC1; p=quarantine; adkim=s; aspf=s;230
75v=DMARC1; p=none; rua=mailto:rua-mpse@mpub.ne.jp222
76v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net;219
77v=DMARC1; p=quarantine; adkim=r; aspf=r214
78v=DMARC1; p=none; rua=mailto:dmarc.rua@edrone.app; ruf=mailto:dmarc.ruf@edrone.app207
79v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com203
80v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com202
81v=DMARC1; p=none; sp=none; rua=mailto:dmarc-raports@dhosting.pl199
82v=DMARC1; p=reject; rua=mailto:zicaptxt@ag.dmarcian.com;199
83v=DMARC1; p=none; rua=mailto:dmarc@reporting.unisender.com191
84v=DMARC1; p=reject; sp=reject186
85v=DMARC1; p=quarantine; pct=100; rua=mailto:61e7fc8674b33@ag.eu.dmarcly.com; ruf=mailto:61e7fc8674b33@fo.eu.dmarcly.com; sp=quarantine; fo=1;185
86v=DMARC1;p=reject;pct=100;183
87v=DMARC1; p=quarantine; pct=100; adkim=r; aspf=r181
88v=DMARC1; p=reject; rua=mailto:a@dmarcreports.facebook.com;178
89v=DMARC1; p=none; pct=100; rua=mailto:dmarc@fbl.optin.com;178
90v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100176
91v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;176
92v=DMARC1;p=none;rua=mailto:rua@dmarc.brevo.com175
93v=DMARC1; p=quarantine; fo=1172
94v=DMARC1;p=none;pct=100;aspf=r;adkim=r;166
95v=DMARC1; p=quarantine; adkim=r; aspf=r;165
96v=DMARC1; p=reject; pct=100; adkim=s; aspf=s163
97v=DMARC1; p=quarantine; sp=none; pct=100; ri=86400163
98v=DMARC1;p=reject;pct=100160
99v=DMARC1; p=reject; rua=mailto:dmarc.report@axa.com;160
100v=DMARC1; p=reject; sp=reject;159
Is your domain one of them? More than half of DMARC-publishing domains enforce nothing — and most senders only find out from their open rates. Run a free inbox placement test: send a real message to our seed mailboxes at Gmail, Outlook, Yandex and Mail.ru and see where it lands — inbox, spam, or nowhere.
Test your deliverability →

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
1localhost520
2asapsemi1.mail.protection.office365.us368
3mx-biz.mail.am0.yahoodns.net306
4mx.services271
5mail247
6mx01.1and1.com212
7mx00.1and1.com209
8zonemx.eu188
9mail1.sbnation.com166
10~159
11alltheemails.com144
12mx.email-messaging.com141
13mail.autoline.com.ua140
14mx2.z-ns.net139
15mail.parktons.com136
16mx.simply.com118
17mx364.umbler.com117
18mx240.umbler.co.uk117
19uk.mx1.mailanyone.net116
20uk.mx2.mx25.net116
21mxi.alpha-prm.jp114
22uk.mx3.mailanyone.net113
23relay2.netnames.net112
24lbmx.bcc.gov.bd112
25s.mail.dcsaas.net112
Show rows 26 – 100
#MX targetDomains
26mx10.websupport.sk111
27mx20.websupport.sk111
28relay1.netnames.net111
29mx1d10.thinline.cz110
30mx1b20.thinline.cz110
31mx00.1and1.co.uk109
32uk.mx4.mx25.net109
33mx01.1and1.co.uk106
34se.mx1.mailanyone.net103
35se.mx2.mx25.net103
36mx1.cleanmx.pt103
37mx2.cleanmx.pt102
38mailin.mx-hub.sk100
39mailin.mx-hub.cz99
40se.mx3.mailanyone.net98
41mx1.ticketsinbound.com98
42mx.maxns.net97
43se.mx4.mx25.net97
44cloudmail.auto-vision.ru96
45mwpremgw1.ocn.ad.jp96
46mwpremgw2.ocn.ad.jp96
47mx2.ticketsinbound.com95
48mailin.mx-hub.eu95
49mx01.mailplug.com93
50mx.zoho.com.au93
51mx2.zoho.com.au93
52mx02.mailplug.com92
53mx3.zoho.com.au92
54mail.vipmailservice.com91
55smtp-fwd.wordpress.com90
56mx.hetemail.jp89
57mailforward.dnsv.jp87
58mx4.name.com86
59mx3.name.com86
60mx01.lancloud.ru86
61mx02.lancloud.ru86
62mx6.name.com85
63mx5.name.com85
64mx8.name.com85
65mx.zoho.com.cn85
66mx-proxy501.heteml.jp85
67mx03.lancloud.ru85
68mx04.lancloud.ru85
69mx7.name.com84
70mx2.zoho.com.cn84
71mx-proxy502.heteml.jp84
72amazon-smtp.amazon.com84
73mx1.atmosphere.facct.ru82
74mx2.atmosphere.facct.ru82
75antispam1.ihs.com.tr81
76antispam2.ihs.com.tr81
77mx1-dk.centerasecurity.dk80
78mx2-dk.centerasecurity.dk80
79mx01.1and1.fr80
80mx00.1and1.fr79
81mx-backup.serveriai.lt79
82mx.aams4.jp76
83sitemail.everyone.net75
84mx-01.mail-forwarder.io75
85mxint01.1and1.com74
86mxint02.1and1.com74
87void.blackhole.mx74
88mx3-dk.centerasecurity.dk74
89mx1.email-cluster.com74
90mx2.email-cluster.com74
91mx.vshosting.eu74
92mail.lakennetwork.com74
93mx1.netim.net73
94mx2.netim.net73
95mx-0.aams4.jp73
96mx-1.aams4.jp73
97mail.global.frontbridge.com73
98mx-02.mail-forwarder.io73
99mx.sendcloud.org72
100mx01.1and1.es72

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
1yunyou.top135
2spf.mailii.org122
3_spf.edhost.eu120
4_spf.mail-neoserv.si119
5qcloudmail.com114
6spf.pitcom.net112
7spf.kirim.email111
8mlrcloud.com111
9spf.263.net110
10_spf.maileroo.com109
11_spf.armada.it109
12dospf.simplepart.com107
13_spf.localservices.com.br107
14spf.boldem.cz105
15send.k-crm.jp104
16spf.cesky-hosting.cz103
17spf.shared.spaceship.host103
18spf.mijndomeinhosting.nl102
19_spf.exsilia.net102
20spf.betrend.com102
21spf.w4ymail.at101
22spf.greengeeks.net101
23relay.guzelhosting.com101
24spf.ssmx.net100
25spf-2248456.jmsend.com100
Show rows 26 – 100
#SPF includeDomains
26gateways.firstdata.com100
27_spf.abcp.ru100
28_spf.octadesk.com99
29spf.aams4.jp99
30mailii.org99
31_spf.wpopt.net98
32amazon.com97
33spf.splio.com97
34spf.mailcamp.nl97
35_spf.lh.pl97
36spf.v6send.net97
37_spf.simpleviewinc.com95
38_spf.presscloud.com95
39mailing.eqs.com94
40outbound.smtp.wisestamp.net94
41spf.spcloud.jp94
42fmx.etius.jp94
43_pmta2.antevenio.com93
44_spf01.mykronos.com93
45_spf.webglobe.cz92
46smtp-cluster.plusvps.com91
47_spf.tld-mx.com91
48spf.host-ww.net91
49_spf.sendnode.com91
50_spf.ogicom.pl91
51spf.squalomail.com91
52verifymyfafsa.com91
53spf.qb-feedback.com90
54senders.mailmasterplus.net90
55spf.sendios.io90
56spf-00181c02.pphosted.com90
57spf.satorimail.net90
58_spf.academicworks.com90
59usermail.zohocreator.com89
60spf.symplicity.com89
61spf89
62_spf.aid.no89
63ofsys.com88
64spf.protection.outlook88
65spf.emailfilter.io88
66spf.shopserve.jp88
67spf.oximailing.com88
68spf.cyberimpact.com87
69relay.thundermail.uk87
70spf.redpoints.com87
71_spf-dc10.sapsf.com87
72eversrv.com86
73mail.feedblitz.com86
74_spf.shared-server.net85
75no-ip.com85
76mfg.siteprotect.com85
77ciphr247.com85
78custmail.vdata.com85
79spf.w2solution.com84
80mailmailmail.net84
81spfref.jackhenry.com84
82spf.esvacloud.com84
83_spf.we.wedos.net84
84_spf.sent2email.com84
85_spf.eemsg.mail.mil84
86sendgrid.com83
87spf.filteredmx.net83
88_spf.axa.com83
89_spf.herodesk-mails.io82
90spf.remarkety.com82
91euromsg.net82
92spf-0024c501.pphosted.com82
93spf.chinaemail.cn82
94mail.zohoanalytics.com81
95relay.email-cluster.com81
96spf.form.run81
97spf2.nlk2.smtps.jp81
98spf.qboxmail.com81
99_spf.postaffiliatepro.com81
100spf.sosafe.de80

Methodology — how the numbers were produced

1. Data source

The dataset is the daily OpenINTEL forward-DNS Tranco snapshot (University of Twente / SURFnet / SIDN Labs). OpenINTEL queries the entire Tranco top-1M domain list daily for MX, TXT, NS, A, AAAA, SOA, CAA, DNSSEC and other records, publishing the results as Apache Parquet. For pre-2022 history we additionally use OpenINTEL's alexa source (the legacy Alexa top-1M list, retired 2023).

Cite: Roland van Rijswijk-Deij et al., "A High-Performance, Scalable Infrastructure for Large-Scale Active DNS Measurements", IEEE JSAC 2016.

2. Sample & cadence

Each report covers a single date — the latest OpenINTEL snapshot with <24h delay, typically ~700 k domains with MX records and ~620 k with SPF. The pipeline runs daily at 23:00 Europe/Moscow; each daily run produces an HTML report, a JSON summary, an updated time-series, and incremental updates to the domain registry (§ 12). No sub-sampling.

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, currently ~310 patterns). 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 for dictionary improvement.

4. ESP / SaaS / forwarder / gateway classification (SPF-based)

For each domain's apex SPF record (TXT starting with v=spf1) we extract every include: and redirect= target and resolve them against open classification dictionaries (ESPs, mailbox-as-sender, anti-spam gateways, forwarders, SaaS senders, DMARC vendors, NS providers, verification tokens).

Resolution order: PURE_ESP → MAILBOX_AS_SENDER → GATEWAYS → FORWARDERS → bare-apex substring fallback → SAAS_SENDERS substring iteration. Bare-apex derivation strips leading _spf., _spf-eu., spf., mail. prefixes from dict keys to catch subdomain variants (e.g. _spf.m1.websupport.sk → matches websupport.sk). Malformed includes (no dot, <4 chars) are filtered.

One domain may use several ESPs simultaneously, so ESP shares sum to more than 100% of SPF-publishing domains. Current SPF-include classification coverage: ~81.5% (up from ~38.5% baseline).

Limitation: "flattened" SPF (where include chains were replaced with raw IP ranges to fit the 10-lookup limit) is not detectable from DNS alone — those domains appear ESP-less even when an ESP is in fact used.

5. DMARC (deep)

For each domain we query the _dmarc.<domain> TXT record. Records starting with v=DMARC1 are parsed for:

  • p= (apex policy): none / quarantine / reject / invalid
  • sp= (subdomain policy)
  • pct= (rollout percentage)
  • rua= aggregate-report destinations → classified into vendor buckets (Postmark DMARC, Valimail, dmarcian, URIports, EasyDMARC, Red Sift, Proofpoint EFD, Agari/Fortra, …) using dictionaries/dmarc_vendors.py

A domain is counted as enforced if p=quarantine or p=reject with pct=100 (or pct absent — defaults to 100).

6. SPF mechanics & health

For every SPF record we additionally extract:

  • Final qualifier on the all mechanism: -all (hard fail), ~all (soft fail), ?all (neutral), +all (pass-everything — broken / dangerous), or missing
  • DNS lookup count (include:, redirect=, a:, mx:, exists:, ptr:) — each mechanism counts as 1 against the spec limit of 10. Records exceeding the limit return PermErr at recipients
  • Mechanism mix: include-only (modern), raw IP4/IP6 ranges only (legacy/flattened), mixed
  • Record byte length: percentiles to flag fragmentation risk (>450 B)

7. Email security maturity

Adoption of modern mail-security TXT records, parsed from the same OpenINTEL parquet:

  • MTA-STS: TXT at _mta-sts.<domain> with v=STSv1 — domain advertises required-TLS to its MX
  • BIMI: TXT at default._bimi.<domain> with v=BIMI1 — brand publishes a verified logo (requires p=reject)
  • TLS-RPT (SMTP TLS Reporting): TXT at _smtp._tls.<domain> with v=TLSRPTv1 — domain monitors TLS-failure reports
  • DKIM selectors: where the OpenINTEL scan includes *._domainkey.<domain> queries, well-known selectors (google, selector1/2, s1/s2, k1/k2/k3, mailo, mte1, …) are mapped to issuing ESPs

8. DNS provider classification

For each domain's NS RRset, every NS hostname is matched against a suffix dictionary (dictionaries/ns_providers.py) with patterns for Cloudflare, AWS Route 53, Azure DNS, Google Cloud DNS, GoDaddy, Akamai, NS1, UltraDNS, Yandex, DNSPod, Aliyun, OVH, Hetzner, Gandi, registrars, and others. A domain is assigned to its dominant NS provider; ties resolve to whichever pattern was matched first.

9. SaaS-via-verification-tokens

Many SaaS apps a domain is connected to never appear in SPF (because the SaaS doesn't send mail FROM the customer domain). To recover this signal we parse apex TXT records for verification tokens — google-site-verification=…, MS=…, atlassian-domain-verification=…, stripe-verification=…, plus ~70 other patterns in dictionaries/verification_tokens.py. This produces a complementary "SaaS density" metric and surfaces apps that the SPF-only view misses.

10. Email infrastructure modernity

Three additional TLS / IPv6 metrics:

  • IPv6-on-MX: MX hostname has at least one AAAA record
  • DANE / TLSA on MX: TLSA record at _25._tcp.<mx_host> (where the parquet includes TLSA queries)
  • CAA: any 0 issue … / 0 issuewild … record at apex; CAs aggregated into a market-share view (Let's Encrypt, DigiCert, Sectigo, …)

11. Cross-tabulations

  • Country × ESP heatmap: top-15 ccTLDs × top-15 ESPs, cell = % of country's SPF-publishing domains using ESP X. Surfaces regional ESP champions (Brevo / FR, Unisender / RU, MailerLite / LT, Akna / BR, Shoptet / CZ).
  • Mailbox × ESP combinations: stacked frequency of common stack pairings (Google Workspace + HubSpot, MS365 + Marketo, …).

12. Domain registry & identifiers

Every domain ever observed across snapshots is assigned a stable integer ID in /var/openintel-cache/registry/domains.sqlite3 (currently ~1.2 M domains). Reports reference domains by ID rather than embedding strings; clients resolve names from a single gzipped registry dump (/email-stats/domains.csv.gz, ~13 MB). This keeps per-report payloads compact, enables fast set-operation diffs across snapshots, and gives every domain a first-seen / last-seen timestamp.

13. Daily change-alerts feed

Each daily run computes a domain-level diff vs the previous scan and emits a change-feed at /email-stats/alerts.html (also as JSON + Atom). Detected events: ESP added/removed in SPF, DMARC policy upgrade/downgrade, primary-mailbox-provider change, SPF strict→soft regression, MTA-STS / BIMI first publication. Severity tag is good / bad / info.

14. Per-entity detail pages

The top-100 ESPs, top-100 SaaS senders and top-80 mailbox providers each have a dedicated detail page at /email-stats/detail/<kind>/<slug>.html showing KPI cards, a Chart.js sparkline (from history.json), TLD distribution and a sample of customer domains.

15. Tier breakdown

Each domain is assigned a tier from its Tranco rank: top-1k / top-10k / top-100k / top-1M / unranked.

16. Reproducibility & data hygiene

Every published report includes the exact OpenINTEL date, dictionary file 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 long-term (per OpenINTEL data agreement). The domain registry stores names but no record-level content.

17. 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. The alexa source used for pre-2022 history has a different composition (~960 k domains, US-heavier).
  • 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 (Mimecast/Proofpoint customers using their own brand) is not detectable from DNS alone.
  • DKIM enumeration is selector-based — only domains whose well-known selectors are scanned by OpenINTEL appear in the DKIM layer.
  • Long-tail unmatched: ~18.5% of SPF includes belong to a long tail of regional hosters (~84 k unique singletons). This is a fundamental ceiling of any dictionary-based method — filling it would require manual research of 1500+ providers.
  • Newly-added dictionary entries have no historical sparkline until ≥ 2 daily scans accumulate, since archived raw parquet is purged after parsing per the OpenINTEL data agreement.

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-07-09 — 657 304 MX, 616 494 SPF2026-07-08 — 656 808 MX, 615 969 SPF2026-07-07 — 655 988 MX, 615 231 SPF2026-07-06 — 655 261 MX, 614 575 SPF2026-07-05 — 654 926 MX, 614 272 SPF2026-07-04 — 665 047 MX, 623 765 SPF2026-07-03 — 664 686 MX, 623 266 SPF2026-07-02 — 664 961 MX, 623 597 SPF2026-07-01 — 664 715 MX, 623 370 SPF2026-06-30 — 665 299 MX, 624 066 SPF2026-06-29 — 671 597 MX, 630 016 SPF2026-06-28 — 667 370 MX, 626 001 SPF2026-06-27 — 666 220 MX, 624 986 SPF2026-06-26 — 666 177 MX, 624 950 SPF2026-06-25 — 665 951 MX, 624 772 SPF2026-06-24 — 665 655 MX, 624 551 SPF2026-06-23 — 665 823 MX, 624 757 SPF2026-06-22 — 665 950 MX, 625 047 SPF2026-06-21 — 667 342 MX, 626 553 SPF2026-06-20 — 669 301 MX, 628 455 SPF2026-06-19 — 661 817 MX, 621 795 SPF2026-06-18 — 661 882 MX, 622 049 SPF2026-06-17 — 661 091 MX, 621 709 SPF2026-06-16 — 660 933 MX, 621 836 SPF2026-06-15 — 662 137 MX, 623 017 SPF2026-06-14 — 650 734 MX, 612 415 SPF2026-06-13 — 650 753 MX, 612 354 SPF2026-06-12 — 651 025 MX, 612 617 SPF2026-06-11 — 651 209 MX, 612 707 SPF2026-06-10 — 651 319 MX, 612 713 SPF2026-06-09 — 650 861 MX, 612 459 SPF2026-06-08 — 650 013 MX, 611 648 SPF2026-06-07 — 649 787 MX, 611 420 SPF2026-06-06 — 658 426 MX, 619 451 SPF2026-06-05 — 659 595 MX, 620 522 SPF2026-06-04 — 660 158 MX, 620 940 SPF2026-06-03 — 660 101 MX, 620 354 SPF2026-06-02 — 660 335 MX, 620 446 SPF2026-06-01 — 662 428 MX, 622 222 SPF2026-05-31 — 667 641 MX, 626 984 SPF2026-05-30 — 663 036 MX, 622 559 SPF2026-05-29 — 663 271 MX, 622 553 SPF2026-05-28 — 663 075 MX, 622 229 SPF2026-05-27 — 663 040 MX, 621 877 SPF2026-05-23 — 660 587 MX, 620 034 SPF2026-05-22 — 657 556 MX, 617 016 SPF2026-05-21 — 659 930 MX, 619 421 SPF2026-05-20 — 659 568 MX, 618 994 SPF2026-05-19 — 661 300 MX, 620 621 SPF2026-05-18 — 653 826 MX, 613 816 SPF2026-05-17 — 652 834 MX, 613 060 SPF2026-05-16 — 653 289 MX, 613 507 SPF2026-05-15 — 653 883 MX, 614 025 SPF2026-05-14 — 654 606 MX, 614 742 SPF2026-05-13 — 654 450 MX, 614 641 SPF2026-05-12 — 654 613 MX, 614 806 SPF2026-05-11 — 654 275 MX, 614 529 SPF2026-05-10 — 654 198 MX, 614 496 SPF2026-05-09 — 654 965 MX, 615 249 SPF2026-05-08 — 664 721 MX, 624 279 SPF2026-05-07 — 662 493 MX, 622 130 SPF2026-05-06 — 661 868 MX, 621 451 SPF2026-05-05 — 662 628 MX, 622 150 SPF2026-05-04 — 662 839 MX, 622 414 SPF2026-05-03 — 671 505 MX, 630 301 SPF2026-05-02 — 666 074 MX, 625 213 SPF2026-05-01 — 664 902 MX, 624 104 SPF2026-04-30 — 665 325 MX, 624 448 SPF2026-04-29 — 665 578 MX, 624 625 SPF2026-04-28 — 663 645 MX, 622 920 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 SPF2019-07-01 — 1 177 952 MX, 806 744 SPF2019-06-01 — 1 205 558 MX, 822 402 SPF2019-05-01 — 1 196 890 MX, 811 837 SPF2019-04-01 — 1 120 142 MX, 752 449 SPF2019-03-01 — 1 170 801 MX, 787 932 SPF2019-02-01 — 1 202 345 MX, 799 255 SPF2019-01-01 — 1 190 206 MX, 783 686 SPF2018-12-01 — 1 196 068 MX, 792 282 SPF2018-11-01 — 1 177 133 MX, 775 137 SPF2018-10-01 — 1 140 868 MX, 743 256 SPF2018-09-01 — 1 183 473 MX, 765 011 SPF2018-08-01 — 1 194 344 MX, 772 448 SPF2018-07-01 — 1 165 617 MX, 745 554 SPF2018-06-01 — 1 193 038 MX, 753 513 SPF2018-05-01 — 1 168 881 MX, 732 275 SPF2018-04-01 — 1 174 598 MX, 730 483 SPF2018-03-01 — 827 056 MX, 516 103 SPF2018-02-01 — 1 195 663 MX, 725 044 SPF2018-01-01 — 813 525 MX, 512 876 SPF2017-12-01 — 818 419 MX, 513 903 SPF2017-11-01 — 815 080 MX, 507 477 SPF2017-10-01 — 823 380 MX, 508 173 SPF2017-09-01 — 815 671 MX, 500 347 SPF2017-08-01 — 829 376 MX, 505 516 SPF2017-07-01 — 830 824 MX, 502 438 SPF2017-06-01 — 828 635 MX, 497 007 SPF2017-05-01 — 828 210 MX, 493 097 SPF2017-04-01 — 828 454 MX, 490 217 SPF2017-03-01 — 824 804 MX, 483 151 SPF2017-02-01 — 839 476 MX, 482 733 SPF2017-01-01 — 827 995 MX, 470 990 SPF2016-12-01 — 825 158 MX, 467 480 SPF2016-11-01 — 837 849 MX, 472 624 SPF2016-10-01 — 838 377 MX, 469 807 SPF2016-09-01 — 835 089 MX, 462 936 SPF2016-08-01 — 848 095 MX, 469 528 SPF2016-07-01 — 842 098 MX, 463 893 SPF2016-06-01 — 848 829 MX, 462 786 SPF2016-05-01 — 843 824 MX, 455 820 SPF2016-04-01 — 843 843 MX, 449 460 SPF2016-03-01 — 865 090 MX, 456 873 SPF2016-02-01 — 862 585 MX, 450 683 SPF2016-01-22 — 845 356 MX, 440 606 SPF
Data source: https://openintel.nl/data/forward-dns/top-lists/
Generated automatically from OpenINTEL Tranco snapshot 2026-07-09. Aggregates only — raw OpenINTEL data is deleted after analysis per their data agreement.
Last build: 2026-07-10T21:02:58Z.