Skip to Content
Email Security

What is MTA-STS?

MTA-STS (Mail Transfer Agent Strict Transport Security) is the standard that lets a domain publicly declare it only accepts inbound email over an encrypted and validated channel, and that anyone unable to meet that should not deliver at all. It fixes the blind spot in STARTTLS, whose protection is optional and can be taken down silently: the requirement is now published in advance rather than decided in the heat of delivery. The policy lives in a file served over HTTPS, announced by an _mta-sts record in DNS.

Zamak TechnologiesUpdated on August 6, 2026

How MTA-STS works

The trick in MTA-STS is publishing the requirement in two places a network attacker cannot tamper with at the same time, and making the sender hold that requirement before it needs it.

1

The domain announces it has a policy

A text record at _mta-sts.yourdomain.com, holding v=STSv1 and a version id, states that a policy exists. When that identifier changes, senders know they must fetch the policy again.

2

The policy is served over HTTPS

The actual content sits at https://mta-sts.yourdomain.com/.well-known/mta-sts.txt and lists the mode, the valid inbound servers and max_age, which is how long the sender should hold on to it.

3

The sender fetches and caches it

On first delivery, the sending server reads the policy and keeps it cached for the max_age period. That is what cuts down the attacker's power: at attack time, the requirement is already in the sender's hands. The window that remains is the very first contact, before any cached copy exists, which is why the standard recommends cache lifetimes as long as is practical.

4

The requirement is applied at delivery

If the mode is enforce and the channel cannot be protected and validated, the sender refuses delivery instead of falling back to plain text. In the other modes, it delivers anyway.

Source: RFC 8461, the official MTA-STS specification published by the IETF, which defines the two-part publication (the _mta-sts record and the mta-sts.txt file served over HTTPS), the three policy modes and the max_age field.

Where MTA-STS stops

  • It depends on whoever sends. The policy is a declared requirement, and the one who honors it is the sender's server. A provider that has not implemented the standard simply does not see it, and delivers as it always did.
  • The policy you publish protects inbound, not outbound. It states how the world should talk to your domain. Protecting what you send is the other half of the standard: it depends on your servers reading the destinations' policies, and on those destinations publishing one at all.
  • It runs on infrastructure of its own. It needs an mta-sts hostname published, an HTTPS site with a valid certificate serving the file, and a DNS record consistent with it. If that site's certificate expires, the policy vanishes for anyone who had not cached it yet.
  • It does nothing in testing mode. This is the rung where most stop, and it is worth spelling out: in testing the policy exists, shows up in any check, and prevents not a single insecure delivery.

The three policy modes

  • none Declares the domain no longer maintains an active policy. It exists so you can opt out cleanly, telling senders who cached the previous policy, rather than simply deleting everything and breaking deliveries.
  • testing The policy exists and requires nothing. Senders implementing TLS reporting report the failures they would have hit, but deliver the message regardless of the validation result. It is the measurement phase, and it is where nearly half the domains that publish sit parked.
  • enforce The only mode that protects. The sender is obliged to refuse delivery to a server that fails validation or does not support switching to an encrypted channel. This is where the announcement-stripping attack stops working: deleting the 250 STARTTLS line from the conversation no longer makes the sender fall back to plain text, it makes the delivery be refused.
  • The max_age field Not a mode, but what gives the three their force: it sets how long the sender holds the policy. Too short a lifetime reopens the attack window at every expiry; the standard allows up to 31,557,600 seconds, roughly a year.

Published is not the same as in force

0.7%
of the million most popular domains publish an MTA-STS policy: 7,377 in January 2026, against 2,975 (0.3%) in 2024 (URIports, annual survey)
45%
of those that publish sit in testing mode, which requires nothing of anyone; only around 54% reached enforce (URIports, 2026)
1 in 5
published deployments does not pass validation, whether from a missing record, a certificate problem or a syntax error: 80.8% are correct (URIports, 2026)

The numbers on this standard tell an arithmetic story. Out of every thousand top internet domains, seven publish the policy. Of those seven, four stopped at testing mode. And of every five published deployments, one does not even pass validation. Multiply the three cuts together and the total number of domains that genuinely refuse an insecure delivery is a small fraction of a number that was already small. And it is not a queue moving forward: the split between modes has stayed remarkably stable across three years of the survey, which suggests testing mode stopped being a stage and became a destination. For a buyer, and for whoever answers for the environment itself, the practical consequence is the same: knowing that a domain has MTA-STS authorizes no conclusion at all about how protected it is, and the only question that returns information is which mode the policy is in.

How to reach enforce without losing email

The sequence exists because getting this wrong does not fill a spam folder, it makes legitimate mail stop being delivered. Five steps, in this order:

  1. Fix your inbound servers' certificates firstThe validation the sender will run is against your mail server's name. An expired certificate, or one whose name does not match, fails, and under enforce failing means the message is refused.
  2. Publish TLS reporting firstIt is the instrument. Without it you enter enforcement blind to who was failing, and you discover the list of those affected the worst way possible, one at a time, as they complain.
  3. Start in testing mode and read what comes backLet testing do its actual job, which is to measure, for a few weeks. What shows up there is the list of what must be fixed before you require anything.
  4. Move to enforce with a short cache lifetime at firstA smaller max_age early on lets you back out quickly if something slips through. Once stable, raise it, because a long lifetime is what genuinely protects.
  5. Treat the policy site as a production serviceIf the certificate on mta-sts.yourdomain.com expires, the policy vanishes for anyone who had not cached it. It is a monitoring item, not a static file you publish and forget.

In practice

It is the difference between asking for a closed room in the middle of a conversation and having agreed, before any conversation exists, that without a closed room there is no meeting. A request made in the moment can be uninvited in the moment, which is exactly what the stripping attack does. A condition agreed in advance is already in the other side's hands when the moment arrives, and then there is nothing to negotiate: either the room is closed, or there is no delivery.

How Zamak handles MTA-STS

Zamak Technologies runs MTA-STS as a measured path to enforcement: correct inbound certificates, TLS reporting switched on first, measurement in testing mode, and promotion only with evidence that nothing legitimate is refused, alongside the team that already administers the environment. STARTTLS explains the hole this standard closes, and TLS-RPT is the instrument that makes promotion safe. The email spoofing check gives the opening picture of your domain. That watch is part of Managed Email Security and of Managed Cybersecurity in the Zamak Method.

Frequently asked questions about MTA-STS

What is the difference between MTA-STS and STARTTLS?
STARTTLS is the mechanism that encrypts the conversation between two servers, and it is optional: if the invitation to encrypt never arrives, delivery carries on in plain text without telling anyone. MTA-STS is the policy declaring, in advance, that your domain does not accept that fallback. One is the lock, the other is the rule saying there is no delivery without the lock.
I published the policy in testing mode. Am I protected?
No. In testing mode the policy exists, appears in any check, and prevents no insecure delivery: senders implementing reporting report the failures and deliver the message anyway. It is the measurement phase that lets you reach enforcement safely, and it is where nearly half the domains that publish sit parked.
Does MTA-STS protect the email my company sends?
Not directly. The policy you publish governs how the world delivers to you. How your servers deliver to third parties depends on their outbound configuration and on the destination domains publishing policies of their own. They are two sides of the same coin, configured in different places.
What happens if the certificate on the policy site expires?
The policy can no longer be fetched. Anyone who had already cached it keeps applying it for the cache period, and anyone who had not starts delivering with no requirement. That is why the host serving the policy belongs in monitoring alongside your other critical services, rather than being treated as a file published once.
Is it worth it for a company outside financial services?
The right question is not the sector, it is what travels in the email. Proposals with pricing, customer records, payroll and contract discussions move by email in every sector, and the exposure depends on which stretch of the internet the message crossed. Publishing the policy is cheap, and nearly all the work is in measuring before requiring.

Related terms