Who uses what for email DAILY

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

655 988
Domains with MX
615 231
Domains with SPF
455 242
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-07

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. Looking for one domain? Domain lookup — mailbox provider, ESPs and DMARC policy of any top-10k website.

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 58622.5%
2Google Workspace →142 76221.76%
3Microsoft 365 →109 43416.68%
4Unknown / Other →50 9677.77%
5Generic / unmatched (mx*.*) →18 0962.76%
6Proofpoint →12 4961.9%
7Generic / unmatched (mail.*) →11 4641.75%
8Yandex 360 →10 7081.63%
9Cloudflare Email Routing →10 4961.6%
10Mimecast →9 9921.52%
Show rows 11 – 30
#Mailbox providerDomainsShare of MX-having domains
11Hostinger →7 9291.21%
12Namecheap Email Forwarding →6 9721.06%
13Zoho Mail →6 7811.03%
14QQ Mail (Tencent) →5 4510.83%
15GoDaddy →4 9590.76%
16Amazon WorkMail →4 6620.71%
17OVH Mail →4 6150.7%
181&1 IONOS →3 5830.55%
19Mail.ru for Business →3 4900.53%
20Barracuda →3 4600.53%
21Jellyfish (Namecheap) →2 8880.44%
22Proofpoint Essentials →2 8000.43%
23SpamExperts (SolarWinds) →2 6850.41%
24Cisco IronPort →2 6330.4%
25Mailgun (inbound) →2 2990.35%
26Beget (RU) →2 2400.34%
27Rackspace Email →2 2010.34%
28Alibaba Mail (China) →2 0590.31%
29Zoho Mail (EU) →1 7840.27%
30Hosted Email (Rackspace/IONOS) →1 7200.26%
🏠 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 544 domains
Unique unmatched MX hosts
36 430
individual hostnames in the long tail
Self-hosted
22.53%
147 762 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 2286.21%
2SendGrid (Twilio) →29 1824.74%
3Mailgun →25 2754.11%
4Zendesk →23 7923.87%
5Mailchimp →22 6873.69%
6Mandrill →20 7023.36%
7HubSpot →19 5793.18%
8Salesforce →16 0732.61%
9Mailjet (Sinch) →13 0592.12%
10Cloudflare Email Routing →11 1141.81%
Show rows 11 – 30
#ESPDomainsShare of SPF-publishing domains
11Brevo (ex-Sendinblue) →8 7381.42%
12Mimecast →8 7221.42%
13MailerSend →7 8561.28%
14Namecheap Forwarding →7 2351.18%
15MailChannels →6 5851.07%
16Elastic Email →4 3500.71%
17Constant Contact →3 5120.57%
18Unisender (RU) →3 4900.57%
19Campaign Monitor →3 4390.56%
20Marketo (Adobe) →3 2480.53%
21Zoho Campaigns →3 1850.52%
22Emsd1 (transactional) →2 9450.48%
23Postmark →2 9010.47%
24SendPulse →2 8660.47%
25Exclaimer (signatures) →2 6360.43%
26Zoho ZeptoMail →2 6330.43%
27SparkPost →2 6320.43%
28Help Scout →2 3000.37%
29Salesforce Marketing Cloud →2 2040.36%
30Barracuda Essentials →2 1250.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 2990.86%
2Pardot (Salesforce) →4 8250.78%
3CodeTwo Email Signatures 365 →4 3430.71%
4KnowBe4 →3 4310.56%
5Statuspage (Atlassian) →2 0940.34%
6Trustpilot →1 8280.3%
7Atlassian (Jira/Confluence) →1 8200.3%
8Firebase (Google) →1 8190.3%
9Lark / Feishu →1 2950.21%
10BigCommerce →1 2460.2%
Show rows 11 – 30
#SaaS appDomainsShare of SPF-publishing domains
11Sage Intacct →1 1160.18%
12NetSuite (Oracle) →1 1080.18%
13Qualtrics →1 0860.18%
14Oracle Cloud Email →1 0530.17%
15WordPress.com / WP Cloud →9090.15%
16Docebo (LMS) →9050.15%
17Oracle Cloud →8210.13%
18One.com (DK hosting) →7810.13%
19Zoho Books →6940.11%
20AFAS →6500.11%
21Greenhouse →6070.1%
22SAP SuccessFactors →5820.09%
23PayPal Braintree →5720.09%
24ClickDimensions →5630.09%
25UKG / UltiPro →5420.09%
26Autotask (ConnectWise) →4810.08%
27TOPdesk →4500.07%
28FormAssembly →4450.07%
29ConnectWise →4340.07%
30Freshservice (Freshworks) →4280.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.33%

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 173
2v=DMARC1; p=none32 440
3v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com8 714
4v=DMARC1; p=quarantine;4 854
5v=DMARC1; p=quarantine3 956
6v=DMARC1; p=reject;3 795
7v=DMARC1;p=none;3 629
8v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;3 584
9v=DMARC1; p=quarantine; adkim=s; aspf=s3 121
10v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com3 073
11v=DMARC1; p=reject2 840
12v=DMARC1; p=none; aspf=r; adkim=r;2 430
13v=DMARC1; p=quarantine; pct=1002 355
14v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;2 063
15v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; ruf=mailto:dmarc@mailinblue.com!10m; rf=afrf; pct=100; ri=864002 061
16v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc.report@axa.com;2 005
17v=DMARC1;p=none1 782
18v=DMARC1; p=none; aspf=r; sp=none1 693
19v=DMARC1; p=none; adkim=r; aspf=r;1 505
20v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;1 430
21v=DMARC1;p=quarantine;pct=100;fo=11 275
22v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email1 255
23v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=864001 217
24v=DMARC1; p=reject; rua=mailto:dmarc_agg@vali.email1 207
25v=DMARC1;p=reject;1 191
Show rows 26 – 100
#DMARC recordDomains
26v=DMARC1; p=reject; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;1 030
27v=DMARC1; p=none; sp=none1 020
28v=DMARC1; p=none; sp=none;977
29v=DMARC1; p=none; rua=mailto:dmarc_agg@vali.email;958
30v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com882
31v=DMARC1; p=reject; rua=mailto:report@dmarc.amazon.com; ruf=mailto:report@dmarc.amazon.com872
32v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s824
33v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:ewai10d2@ag.eu.dmarcian.com; ruf=mailto:ewai10d2@fr.eu.dmarcian.com759
34v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email752
35v=DMARC1; p=none; pct=100706
36v=DMARC1; p=reject; pct=100703
37v=DMARC1; p=quarantine; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com699
38v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.163.com; rua=mailto:dmarc_report@qiye.163.com662
39v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net; adkim=r; aspf=r;650
40v=DMARC1;p=quarantine;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400649
41v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com616
42v=DMARC1; p=none; sp=none; rf=afrf; pct=100; ri=86400557
43v=DMARC1; p=quarantine; pct=100;516
44v=DMARC1; p=quarantine; rua=mailto:dmarc_agg@vali.email;504
45v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com504
46v=DMARC1;p=quarantine499
47v=DMARC1; p=reject; pct=100;448
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;381
51v=DMARC1; p=none; sp=none; adkim=r; aspf=r376
52v=DMARC1; p=none; adkim=r; aspf=r371
53v=DMARC1; p=none; pct=100;356
54v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com; fo=1351
55v=DMARC1331
56v=DMARC1; p=reject; sp=none; rf=afrf; pct=100; ri=86400321
57v=DMARC1;p=reject319
58v=DMARC1; p=none; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;316
59v=DMARC1; p=reject; adkim=s; aspf=s309
60v=DMARC1;p=reject;fo=1;rua=mailto:dmarc_rua@emaildefense.proofpoint.com;ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com307
61v=DMARC1; p=reject; sp=reject; pct=100; fo=1; ri=3600; rua=mailto:dmarcrecord@gmail.com; ruf=mailto:dmarcrecord@gmail.com;305
62v=DMARC1;p=quarantine;300
63v=DMARC1; p=none; fo=1299
64v=DMARC1; p=none; rua=mailto:dmarc@smtp.mailtrap.live; ruf=mailto:dmarc@smtp.mailtrap.live; rf=afrf; pct=100294
65v=DMARC1; p=reject; rua=mailto:tnoff9hr@ag.eu.dmarcadvisor.com; aspf=s; adkim=s;289
66v=DMARC1; p=none; aspf=r; adkim=r287
67v=DMARC1; p=none; rua=mailto:mailauth-reports@google.com272
68v=DMARC1;p=none;sp=none;pct=50;adkim=r;aspf=r;270
69v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100;fo=0;rf=afrf;ri=86400263
70v=DMARC1;p=none;pct=100259
71v=DMARC1;p=none;rua=mailto:dmarc_report@service.aliyun.com251
72v=DMARC1; p=reject; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;fo=1245
73v=DMARC1; p=quarantine; rua=mailto:rua@dmarc.brevo.com232
74v=DMARC1; p=quarantine; adkim=s; aspf=s;229
75v=DMARC1; p=none; rua=mailto:rua-mpse@mpub.ne.jp222
76v=DMARC1; p=reject; rua=mailto:dmarc_rua@onsecureserver.net;220
77v=DMARC1; p=quarantine; adkim=r; aspf=r216
78v=DMARC1; p=none; rua=mailto:dmarc.rua@edrone.app; ruf=mailto:dmarc.ruf@edrone.app206
79v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com204
80v=DMARC1; p=reject; fo=1; ri=3600; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com201
81v=DMARC1; p=reject; rua=mailto:zicaptxt@ag.dmarcian.com;199
82v=DMARC1; p=none; rua=mailto:dmarc@reporting.unisender.com194
83v=DMARC1; p=none; sp=none; rua=mailto:dmarc-raports@dhosting.pl193
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;181
87v=DMARC1; p=quarantine; pct=100; adkim=r; aspf=r180
88v=DMARC1;p=none;sp=none;adkim=r;aspf=r;pct=100179
89v=DMARC1; p=quarantine; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com;177
90v=DMARC1;p=none;rua=mailto:rua@dmarc.brevo.com176
91v=DMARC1; p=none; pct=100; rua=mailto:dmarc@fbl.optin.com;176
92v=DMARC1; p=reject; rua=mailto:a@dmarcreports.facebook.com;172
93v=DMARC1; p=quarantine; fo=1171
94v=DMARC1; p=quarantine; sp=none; pct=100; ri=86400166
95v=DMARC1; p=quarantine; adkim=r; aspf=r;165
96v=DMARC1;p=none;pct=100;aspf=r;adkim=r;165
97v=DMARC1; p=reject; pct=100; adkim=s; aspf=s164
98v=DMARC1; p=reject; rua=mailto:dmarc.report@axa.com;163
99v=DMARC1;p=reject;pct=100159
100v=DMARC1; p=reject; sp=reject;158
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
1localhost501
2asapsemi1.mail.protection.office365.us368
3mx-biz.mail.am0.yahoodns.net308
4mx.services273
5mail249
6mx01.1and1.com211
7mx00.1and1.com207
8zonemx.eu191
9mail1.sbnation.com167
10~153
11alltheemails.com145
12mail.autoline.com.ua142
13mx2.z-ns.net141
14mx.email-messaging.com141
15mail.parktons.com137
16mx364.umbler.com117
17mx240.umbler.co.uk117
18uk.mx1.mailanyone.net116
19uk.mx2.mx25.net116
20mx.simply.com115
21s.mail.dcsaas.net115
22mxi.alpha-prm.jp113
23lbmx.bcc.gov.bd113
24uk.mx3.mailanyone.net113
25relay2.netnames.net112
Show rows 26 – 100
#MX targetDomains
26mx10.websupport.sk111
27mx20.websupport.sk111
28relay1.netnames.net111
29mx00.1and1.co.uk110
30mx1d10.thinline.cz110
31mx1b20.thinline.cz110
32uk.mx4.mx25.net109
33mx01.1and1.co.uk107
34se.mx1.mailanyone.net102
35se.mx2.mx25.net102
36mx1.cleanmx.pt102
37mx2.cleanmx.pt101
38mx.maxns.net99
39mailin.mx-hub.sk99
40mailin.mx-hub.cz98
41se.mx3.mailanyone.net97
42se.mx4.mx25.net96
43mwpremgw1.ocn.ad.jp96
44mwpremgw2.ocn.ad.jp96
45cloudmail.auto-vision.ru95
46mx1.ticketsinbound.com95
47mailin.mx-hub.eu94
48mx.zoho.com.au93
49mx2.zoho.com.au93
50mx2.ticketsinbound.com92
51mx3.zoho.com.au92
52mx01.mailplug.com90
53smtp-fwd.wordpress.com90
54mail.vipmailservice.com90
55mx02.mailplug.com89
56mx.hetemail.jp87
57mailforward.dnsv.jp87
58mx01.lancloud.ru86
59mx02.lancloud.ru86
60mx4.name.com85
61mx3.name.com85
62mx.zoho.com.cn85
63mx-proxy501.heteml.jp85
64mx03.lancloud.ru85
65mx04.lancloud.ru85
66mx6.name.com84
67mx5.name.com84
68mx8.name.com84
69mx2.zoho.com.cn84
70mx-proxy502.heteml.jp84
71amazon-smtp.amazon.com84
72mx7.name.com83
73mx1-dk.centerasecurity.dk81
74mx2-dk.centerasecurity.dk81
75antispam1.ihs.com.tr81
76antispam2.ihs.com.tr81
77mx1.atmosphere.facct.ru81
78mx2.atmosphere.facct.ru81
79mx-backup.serveriai.lt80
80mx01.1and1.fr78
81mx00.1and1.fr77
82mx.aams4.jp76
83sitemail.everyone.net75
84mx3-dk.centerasecurity.dk75
85mxint01.1and1.com74
86mxint02.1and1.com74
87mail.global.frontbridge.com74
88mx1.netim.net73
89mx2.netim.net73
90mx01.1and1.es73
91void.blackhole.mx73
92mx-0.aams4.jp73
93mx-1.aams4.jp73
94mx-01.mail-forwarder.io73
95mx1.email-cluster.com73
96mx2.email-cluster.com73
97mx.vshosting.eu73
98mail.lakennetwork.com73
99smtp-avas.seeweb.it72
100mx.sendcloud.org71

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.org121
3_spf.edhost.eu120
4_spf.mail-neoserv.si118
5qcloudmail.com114
6spf.pitcom.net112
7spf.263.net112
8spf.kirim.email111
9mlrcloud.com110
10_spf.armada.it109
11dospf.simplepart.com108
12_spf.maileroo.com107
13_spf.localservices.com.br106
14spf.boldem.cz106
15send.k-crm.jp104
16spf.cesky-hosting.cz103
17spf.shared.spaceship.host102
18_spf.exsilia.net102
19spf.betrend.com101
20spf.ssmx.net100
21relay.guzelhosting.com100
22_spf.octadesk.com100
23spf.w4ymail.at99
24gateways.firstdata.com99
25spf.aams4.jp99
Show rows 26 – 100
#SPF includeDomains
26mailii.org98
27spf.greengeeks.net98
28spf-2248456.jmsend.com98
29spf.splio.com98
30spf.v6send.net98
31spf.mijndomeinhosting.nl97
32amazon.com97
33spf.mailcamp.nl96
34_spf.wpopt.net96
35_spf.abcp.ru95
36_spf.presscloud.com95
37_spf.lh.pl95
38mailing.eqs.com94
39_spf.simpleviewinc.com94
40outbound.smtp.wisestamp.net93
41_pmta2.antevenio.com93
42_spf01.mykronos.com93
43spf.spcloud.jp93
44_spf.ogicom.pl92
45spf.squalomail.com92
46spf.host-ww.net91
47smtp-cluster.plusvps.com91
48verifymyfafsa.com91
49_spf.tld-mx.com90
50_spf.sendnode.com90
51spf.qb-feedback.com90
52_spf.academicworks.com90
53spf.satorimail.net90
54spf.sendios.io90
55spf.symplicity.com90
56spf-00181c02.pphosted.com89
57_spf.webglobe.cz89
58spf89
59usermail.zohocreator.com89
60_spf.aid.no89
61fmx.etius.jp89
62senders.mailmasterplus.net89
63spf.cyberimpact.com88
64spf.emailfilter.io88
65spf.shopserve.jp88
66ofsys.com88
67spf.protection.outlook87
68eversrv.com87
69spf.oximailing.com87
70_spf-dc10.sapsf.com87
71spf.redpoints.com87
72relay.thundermail.uk86
73mail.feedblitz.com86
74_spf.shared-server.net85
75custmail.vdata.com85
76mfg.siteprotect.com85
77spf.esvacloud.com85
78_spf.we.wedos.net85
79no-ip.com85
80spfref.jackhenry.com85
81_spf.sent2email.com85
82spf.filteredmx.net84
83ciphr247.com84
84spf.chinaemail.cn84
85spf.w2solution.com84
86spf-0024c501.pphosted.com83
87sendgrid.com83
88_spf.eemsg.mail.mil83
89_spf.axa.com82
90spf.remarkety.com82
91mailmailmail.net82
92euromsg.net82
93spf.qboxmail.com82
94mail.zohoanalytics.com81
95universalspf.org81
96x.universalspf.org81
97_spf.postaffiliatepro.com81
98sender.zcsend.jp81
99spf.icontroller.eu80
100_spf.herodesk-mails.io80

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-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-07. Aggregates only — raw OpenINTEL data is deleted after analysis per their data agreement.
Last build: 2026-07-09T06:52:10Z.