Check MTA-STS

Enter a domain. The MTA-STS checker reads the TXT record at _mta-sts, fetches the policy file over HTTPS, validates mode, max_age and mx entries and compares them with the real MX records of the domain. It also shows whether a TLS-RPT record exists.

What is MTA-STS?

MTA-STS (Mail Transfer Agent Strict Transport Security, RFC 8461) declares that mail to your domain may only be delivered over encrypted, certificate-verified connections. Without MTA-STS, STARTTLS between mail servers is opportunistic: the sending server tries encryption but falls back to plain text if it fails. An attacker on the network path can strip the STARTTLS announcement and read the mail unencrypted.

With an MTA-STS policy in enforce mode the sending server refuses delivery when TLS fails or the MX certificate does not match the host name. Google, Microsoft and other large providers honour MTA-STS when sending. It is the pragmatic route to mandatory transport encryption without DNSSEC, which DANE would require.

The two parts: DNS record and policy file

MTA-STS consists of a TXT record and a text file. The record at _mta-sts.example.com only signals that a policy exists and carries an id that must change whenever the policy changes. The policy itself lives at https://mta-sts.example.com/.well-known/mta-sts.txt and must be served with a valid certificate for exactly that host name.

_mta-sts.example.com. IN TXT "v=STSv1; id=20250901T120000"

# https://mta-sts.example.com/.well-known/mta-sts.txt
version: STSv1
mode: enforce
mx: mail.example.com
mx: *.mx.example.com
max_age: 604800

How to read the result

The checker shows the record, the policy and the comparison with the MX records:

  • Mode enforce: senders must use TLS and verify the certificate. The goal.
  • Mode testing: senders report failures via TLS-RPT but still deliver. The right start for the first weeks.
  • Mode none: a policy exists but has no effect. Only useful to retire a policy in an orderly way.
  • max_age: how long senders cache the policy, in seconds. At least one day (86400), one to four weeks recommended.
  • MX covered: every MX host of the domain must match an mx entry in the policy, either exactly or via a wildcard pattern like *.mx.example.com. If an MX is missing from the policy, senders in enforce mode refuse delivery to that server.
  • TLS-RPT: without a reporting address you never learn whether senders have trouble with your policy.

Common mistakes

  • Policy file unreachable: the host mta-sts.example.com has no A record, no certificate, or the certificate only covers example.com.
  • Wrong content type or HTML instead of text: the file must be served as text/plain, without a redirect to a login or error page.
  • id not changed: after a policy change senders keep the old version until max_age expires.
  • MX changed, policy not: after switching mail providers the mx entries no longer match. In enforce mode, mail from Google and Microsoft stops arriving.
  • Started with enforce right away: without a testing phase and TLS-RPT, configuration errors stay hidden until mail goes missing.

Rollout in three steps

First create the TLS-RPT record, then publish the policy in testing mode with a short max_age and read reports for one or two weeks. If no failures show up, switch to enforce and raise max_age to one or more weeks. Whenever you change mail providers, update the policy first, then the MX records.

Monitor MTA-STS continuously

An MTA-STS policy in enforce mode is a promise to every sender. If the certificate of the policy site expires or someone changes the MX records without the policy, mail gets stuck. DomainWarn checks the record, the policy file and the MX comparison of all client domains regularly and reports deviations before senders refuse delivery.

Frequently asked questions

Do I need MTA-STS with Microsoft 365 or Google Workspace?
Both providers support MTA-STS for inbound mail but do not set it up for your domain automatically. You must publish the DNS record and the policy file yourself. The mx entries are in the provider's documentation.
What is the difference between MTA-STS and DANE?
Both enforce TLS on delivery. DANE publishes certificate information in DNS and requires DNSSEC. MTA-STS uses HTTPS and normal certificate validation and works without DNSSEC. Both can run in parallel.
Where do I host the policy file?
On any web server or CDN reachable at mta-sts.example.com with a valid certificate. A static host such as GitHub Pages, Cloudflare Pages or a small Nginx is enough. The file rarely changes.

Add the MTA-STS record at IONOS, STRATO, Hetzner, Cloudflare and others

The path to the DNS editor differs by host. For the common providers this shows where you create the MTA-STS record and what to watch out for.

MTA-STS record at IONOS

  1. Sign in to the IONOS account and open "Domains & SSL".
  2. Click the gear icon next to the domain and choose "DNS".
  3. Choose "Add record", pick the type (TXT, MX, CNAME) and host name, paste the value, save.
  4. Changes usually apply within minutes; the default TTL is one hour.

Use "@" as the host name for the apex domain; IONOS shows it as the domain name.

MTA-STS record at STRATO

  1. In the STRATO customer login open "Domains" and then "Domain administration".
  2. Choose "manage" next to the domain and switch to the "DNS settings" tab.
  3. STRATO separates by type: "TXT and CNAME records" for SPF, DKIM, DMARC and verifications, "MX records" for mail delivery.
  4. Enter the value and save; propagation can take up to an hour.

For subdomain records such as _dmarc or selector._domainkey put the prefix into the "Subdomain" field, not into the value.

MTA-STS record at Hetzner

  1. Open the Hetzner DNS Console (dns.hetzner.com) and select the zone of the domain.
  2. Choose "Add record", enter type, name and value, lower the TTL if needed.
  3. Save; the Hetzner name servers serve the record immediately.

MTA-STS record at ALL-INKL

  1. Sign in to KAS (the customer administration system) and open "Domain".
  2. Click "edit" next to the domain and then "DNS settings".
  3. "Create new DNS record", enter name (empty for the apex), type and value, save.
  4. ALL-INKL applies changes within minutes.

MTA-STS record at Cloudflare

  1. In the Cloudflare dashboard open the domain and choose "DNS" → "Records".
  2. Choose "Add record" and enter type, name and content.
  3. For MX, TXT and mail-related CNAME records keep the proxy status on "DNS only"; the orange cloud belongs to web records only.
  4. Save; Cloudflare propagates instantly.

MTA-STS record at netcup

  1. In the netcup Customer Control Panel (CCP) open "Domains" and select the domain.
  2. Switch to the "DNS" tab and choose "Add new record".
  3. Enter host (@ for the apex), type and destination, then "Save DNS records".

MTA-STS record at united-domains

  1. In the united-domains portfolio click the domain and open "DNS settings".
  2. Under "Custom DNS records" choose the type, enter subdomain and value.
  3. Save; propagation takes a few minutes.

MTA-STS record at checkdomain

  1. In the checkdomain customer area open "Domains" and select the domain.
  2. Open "DNS settings" and create a new record with type, name and value.
  3. Save.

MTA-STS record at domainfactory

  1. In the domainfactory customer menu open "Domains" and select the domain.
  2. Open "Name server settings" and create a new record.
  3. Enter type, host name and value, save.

MTA-STS record at Alfahosting

  1. In the Alfahosting customer center open the domain and choose "DNS management".
  2. Create a new record with type, name and value, save.

MTA-STS record at webgo

  1. In the webgo customer portal open "Domains" and choose "DNS management" next to the domain.
  2. Create a record with type, name and value, save.

MTA-STS record at 1blu

  1. In the 1blu customer service area open "Domains" and choose "DNS settings" next to the domain.
  2. Create a record with type, name and value, save.

MTA-STS record at Host Europe

  1. In KIS (the customer information system) open "Domain services" and then "Domain administration".
  2. Choose "Name server / DNS" next to the domain and create the record with type, name and value.
  3. Save.

MTA-STS record at Mittwald

  1. In mStudio open the project and select the domain under "Domains".
  2. Open "DNS", edit or create the record, save.

MTA-STS record at GoDaddy

  1. At GoDaddy open "My Products" and choose "DNS" next to the domain.
  2. Choose "Add", enter type, name and value, save.

MTA-STS record at Hostinger

  1. In hPanel open "Domains" and choose "DNS / Nameservers" next to the domain.
  2. In the DNS zone editor create the record with type, name and value.

MTA-STS record at Amazon Route 53

  1. In the AWS console open Route 53, "Hosted zones" and select the zone.
  2. Choose "Create record", enter name, type and value, set the TTL, "Create records".

MTA-STS record at Google Cloud DNS

  1. In the Google Cloud console open "Cloud DNS" and select the zone.
  2. "Add record set", enter name, type and value, create.

MTA-STS record at Azure DNS

  1. In the Azure portal open "DNS zones" and select the zone.
  2. Add a "Record set", enter name, type and value, OK.

MTA-STS record at OVHcloud

  1. In the OVHcloud control panel open "Web Cloud" → "Domain names" and the domain.
  2. Tab "DNS zone", "Add an entry", choose the type, enter subdomain and value, confirm.

MTA-STS record at DigitalOcean

  1. In the DigitalOcean dashboard open "Networking" → "Domains" and select the domain.
  2. Choose the type, enter host name and value, "Create Record".

MTA-STS record at Squarespace

  1. At Squarespace open "Domains", select the domain and open "DNS settings".
  2. Under "Custom records" create the record with type, host and data.

MTA-STS record at Wix

  1. In the Wix account open "Domains" and choose "Manage DNS records" next to the domain.
  2. Under the matching type choose "Add record", enter host name and value, save.

MTA-STS record at Shopify

  1. In the Shopify admin open "Settings" → "Domains" and select the domain.
  2. Open "DNS settings", "Add custom record", enter type, name and value, confirm.

MTA-STS record at INWX

  1. At INWX open "Nameserver" and select the domain.
  2. "Add record", enter type, name and value, save.

MTA-STS record at dogado

  1. In the dogado customer area open the domain and choose "DNS".
  2. Create the record with type, name and value, save.

MTA-STS record at Variomedia

  1. In the Variomedia customer menu open the domain and choose "DNS settings".
  2. Create the record with type, name and value, save.

MTA-STS record at Namecheap

  1. At Namecheap open "Domain List", "Manage" and the "Advanced DNS" tab.
  2. "Add New Record", enter type, host and value, save.

MTA-STS record at Gandi

  1. At Gandi open the domain and choose "DNS records".
  2. "Add a record", enter type, name and value, create.

MTA-STS record at Vercel

  1. In the Vercel dashboard open "Domains" and select the domain.
  2. Under "DNS Records" enter type, name and value, "Add".

Guides for this tool

More tools

Free tool

SPF Checker

Free SPF record check and lookup: syntax, includes, the 10 DNS lookup limit and the closing qualifier. Shows whether your domain blocks forged senders.

Open tool →
Free tool

DMARC Checker

Free DMARC record check and lookup: policy (none, quarantine, reject), pct, reporting addresses and syntax errors. With recommendations for moving to p=reject.

Open tool →
Free tool

DNS Checker

Free DNS lookup straight from the authoritative name server: A, AAAA, CNAME, MX, TXT, NS and CAA records at a glance. No sign-up, every record explained.

Open tool →
Free tool

MX Checker

Free MX lookup: which mail servers receive for a domain, do they resolve, is the priority right? Detects missing and unreachable mail servers.

Open tool →
Free tool

SSL Checker

Free SSL certificate check: expiry date, issuer, chain, host name, alternative names and TLS version. Detects expired, self-signed and mismatched certificates.

Open tool →
Free tool

HTTP Header Checker

Free HTTP header check: HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, Referrer-Policy and Permissions-Policy with recommendations.

Open tool →
Free tool

Redirect Checker

Free 301 redirect check: every hop with status code and response time, from http to https, from www to non-www. Detects redirect chains, loops and 302s.

Open tool →
Free tool

DKIM Checker

Free DKIM record check and lookup: selector, key type, key length, syntax and revoked keys. Leave the selector empty to try common selectors automatically.

Open tool →
Free tool

DNSSEC Checker

Free DNSSEC test: DS record, resolver validation and broken signature chains. Shows whether validating resolvers like Google or Cloudflare reach your domain.

Open tool →
Free tool

TLS-RPT Checker

Free TLS-RPT record check: syntax, reporting addresses (rua) and common errors such as a missing record. Shows whether you get reports on TLS failures.

Open tool →
Free tool

BIMI Checker

Free BIMI record check: syntax, logo URL, SVG Tiny PS, VMC certificate and the DMARC prerequisite. Shows why your logo does not appear in Gmail.

Open tool →
Free tool

Blacklist Check

Free IP blacklist and domain blacklist check: mail server IPs, website IP and domain against Spamhaus, Spamcop, Barracuda, PSBL and SURBL. With delisting links.

Open tool →
Free tool

Domain Checker

Free domain check: expiry date, registrar, EPP status, transfer lock and name servers straight from the registry via RDAP. Warns about expiry and holds.

Open tool →