Email infrastructure modernity

← Back to landing

Three signals of modern email-receiving infrastructure across the Tranco top-1M: IPv6 on MX (can the receiver be reached over v6?), DANE/TLSA (does the receiver pin its TLS certificate via DNS?), and CAA on apex (which CAs is this domain willing to trust?). Scan date: 2026-07-13 · 654,213 domains with MX · 369,789 unique MX hostnames.

1 · IPv6-ready receiving

A domain is IPv6-ready receiving if at least one of its MX hostnames has an AAAA record. The Tranco scan only probes the apex for AAAA, so the headline KPI below is computed over the self-hosted slice where mx_host == apex (the ~5% of domains running their own mail).

Data scope. OpenINTEL Tranco-toplist scans probe AAAA only for the apex domain (and a handful of well-known prefixes), NOT for arbitrary MX hostnames. Therefore the only reliable IPv6-on-MX KPI in this dataset is the 'self-hosted' slice (where the MX hostname IS the apex domain). Provider-MX adoption (Google, Microsoft, etc.) requires the OpenINTEL Forward-DNS Infrastructure dataset which explicitly resolves MX targets.
5.15%self-hosted MX with AAAA
1,574of 30,569 self-hosted domains
0.5%MX hosts probed for AAAA
1,625MX hosts with AAAA (sampled)

Self-hosted MX by TLD (top 15 by adoption)

TLDRegionSelf-hostedv6-ready%
.orgGlobal1,026737.12%
.com.brBrazil686375.39%
.netGlobal2,7061314.84%
.comGlobal / US-skewed14,2286364.47%
.plPoland584203.42%
.roOther504132.58%
.jpJapan1,078242.23%

Top mailbox providers — IPv6 sample

ProviderDomainsMX hosts (v6 / probed)Status
Generic / unmatched (mx*.*)28,4724 / 4100.0% of probed hosts
Hostinger7,8991 / 1100.0% of probed hosts
Unknown / Other107,6661,567 / 1,58099.2% of probed hosts
Google Workspace143,65126 / 2892.9% of probed hosts
Generic / unmatched (mail.*)85,53818 / 2281.8% of probed hosts
Microsoft 365109,3074 / 666.7% of probed hosts
Mimecast9,8300 / 10.0% of probed hosts
Proofpoint12,1250 / 0n/a — MX not probed
Yandex 36010,6360 / 0n/a — MX not probed
Cloudflare Email Routing10,5310 / 0n/a — MX not probed

Provider attribution: each domain assigned to its lexically-first MX host → matched against dictionaries/mx_providers.py. "n/a" means the scan did not probe that provider's inbound MX hostnames for AAAA; a Forward-DNS Infrastructure scan would fill this in.

2 · DANE / TLSA on MX

DANE pins the receiving SMTP server's TLS certificate via a TLSA record at _25._tcp.<mx_host>. Adoption is rare globally (~0.5%) but high in .de, .se, .nl, .cz due to host-side defaults and mandates.

Data not available in this scan.
OpenINTEL Tranco-toplist scans do not include TLSA queries — this dataset queries A / AAAA / MX / TXT / CAA / NS / SOA / DNSKEY and DS only. DANE / TLSA adoption requires the OpenINTEL Forward-DNS Infrastructure dataset (per-mailserver TLSA probes), which is published as a separate corpus. Once that source is ingested, this section will populate automatically.

Reference: 369,789 unique MX hostnames observed today. A separate TLSA probe per MX host (port 25 / TCP) would be required to compute adoption — historically concentrated in .de, .se, .nl, .cz; global average ≈ 0.5%.

3 · CAA on apex

CAA records list the Certificate Authorities a domain is willing to trust. A modern security-conscious config has an issue tag and explicitly denies wildcard issuance (issuewild ";").

8.00%MX-domains with CAA
52,347of 654,213 MX-domains
1.86%strict-only (no wildcard)
975strict-only domains

Top CAs by CAA count (among MX-domains with CAA)

CADomains% of CAA-domains
letsencrypt.org44,37684.77%
digicert.com32,67762.42%
pki.goog29,07355.54%
comodoca.com25,59848.90%
ssl.com23,79345.45%
sectigo.com10,19419.47%
amazon.com9,64218.42%
globalsign.com6,73612.87%
amazonaws.com4,4688.54%
amazontrust.com3,9627.57%
awstrust.com3,4966.68%
godaddy.com2,8085.36%
harica.gr1,1352.17%
certum.pl9811.87%
entrust.net7951.52%

CA values are normalised lower-case, parameters after ; stripped. The deny-all (";") bucket = explicit issuance ban (no CA may issue).

Source: OpenINTEL forward-DNS Tranco-top-1M snapshot (2026-07-13). Generated by infrastructure_page.py; raw JSON: infrastructure.json.