RFC 8461

MTA-STS: SMTP MTA Strict Transport Security

MTA-STS forces sending servers to use TLS when delivering mail to your domain, blocking downgrade attacks that would otherwise let an attacker intercept inbound mail in plaintext.

TL;DR

What it does

SMTP is a 1980s protocol that started cleartext; STARTTLS was added later as an opportunistic upgrade, but the sender can't tell the difference between 'this server doesn't speak TLS' and 'an attacker stripped the STARTTLS line.' MTA-STS closes that gap.

When MTA-STS is enabled, sending servers know your MX hosts MUST be reached over TLS with a valid certificate matching the MX hostname. If TLS fails, the message is queued (testing mode) or bounced (enforce mode), but never sent in cleartext.

Combined with TLS-RPT, MTA-STS gives you both prevention (mail won't go cleartext) and visibility (you see TLS failure reports daily).

How it works

  1. Publish a TXT record at _mta-sts.<your-domain> with v=STSv1; id=<unique-id>. The id changes every time you update the policy file.
  2. Host the policy file over HTTPS at https://mta-sts.<your-domain>/.well-known/mta-sts.txt with mode, MX hosts, and max_age.
  3. Sending servers fetch the policy file once per max_age period, cache it, and enforce it on every subsequent connection to your MX.
  4. Updating the policy: change the file content, then bump the id in the DNS TXT record so cached copies expire and senders refetch.

Example record

https://mta-sts.yourdomain.com/.well-known/mta-sts.txt

version: STSv1 mode: enforce mx: smtp.google.com max_age: 604800

Common pitfalls

Related tools

Want PhishFence to monitor MTA-STS for your domains?

Sign up free, add a domain, and PhishFence will continuously check MTA-STS (and the rest of the email-auth stack) for you.

Start free