[ Diagnostics & resources ]

MTA-STS checker guide: trace the full policy chain

Plan an MTA-STS check that separates DNS discovery, authenticated policy retrieval, MX scope, SMTP validation and sender policy caching.

By the EmailAuth research team · 6 min read

[ Key points ]

  • Preserve discovery record selection, alias paths and exact policy identifiers.
  • Validate the prescribed HTTPS host and response without following redirects.
  • Check MX patterns and SMTP certificates as distinct dependencies.
  • Account for cached policies before approving enforcement or recovery.
On this page

Check a dependency chain rather than one TXT value

MTA-STS depends on discovery, an authenticated HTTPS policy and the receiving mail hosts described by that policy. A TXT record that looks correct can coexist with an unreachable policy file or an MX certificate that does not match. A useful checker therefore reports each stage separately and explains which later conclusions could not be reached after an earlier failure.

This guide proposes that diagnostic behavior without supplying a working EmailAuth tool. No DNS lookup, HTTPS fetch against a customer domain, SMTP connection or policy change occurred. The exact implementation gate is open: Implement and test the promised function. An article, mock-up or specification alone is not a working tool.

Derive discovery from the intended recipient policy domain

Start with the policy domain being evaluated and record why it is in scope. The discovery owner is _mta-sts followed by that domain. Under RFC 8461, discovery filters for the supported version, requires one usable matching TXT record and accepts a CNAME path to the TXT value. Multiple character strings within one TXT record are concatenated without inserted spaces; multiple matching records are a different problem.

The id field identifies a policy revision but has no implied numerical or chronological ordering. A checker should preserve the exact identifier rather than assuming a larger-looking string is newer. Absence of a usable discovery record does not automatically remove a policy that a sender has already cached. RFC 8461, section 3.1.

Authenticate the policy host and inspect the exact response

The prescribed URL uses https, the mta-sts host label and /.well-known/mta-sts.txt. For fictional recipient.example, that becomes https://mta-sts.recipient.example/.well-known/mta-sts.txt. This is a constructed illustration, not a fetched resource. The policy-host certificate must be valid for that host, unexpired and chained to a root trusted by the sender.

RFC 8461 requires an HTTP 200 response, prohibits following HTTP redirects and prohibits HTTP caching for policy retrieval. It recommends checking the text/plain media type. A checker that follows a redirect to a website homepage and then reports success has evaluated the wrong behavior. Distinguish DNS resolution, connection, certificate, status and policy-parsing failures. A certificate failure is a result to explain, not permission to bypass a security warning. RFC 8461, sections 3.2–3.3.

Bound retrieval time and response size. A server-side implementation must also control outbound destinations so a submitted name cannot cause requests to internal services or metadata endpoints. Apply network restrictions and validate the actual destination, including address changes, rather than relying only on a friendly hostname. These are proposed design requirements, not implemented defenses. OWASP SSRF prevention guidance.

Parse mode, lifetime and MX scope together

The policy declares version, mode, max_age and permitted MX patterns, with MX requirements dependent on the policy mode. Each allowed MX entry occupies its own line. A policy's max_age governs its lifetime in sender policy caches, not the DNS TTL or an HTTP cache-control header. Display these separate concepts rather than calling all three propagation time.

Compare each relevant MX candidate with the allowed patterns. RFC 8461 limits a wildcard to the entire leftmost label: *.example matches mail.example but not example or a.b.example. A broad visual substring comparison is therefore unsuitable. Retain the candidate host and the exact pattern that matched or failed. A legitimate backup MX omitted from an enforcing policy can become an availability problem. RFC 8461, sections 3.2 and 4.1.

Do not confuse the website certificate with SMTP validation

The HTTPS policy certificate authenticates policy retrieval. The receiving MX separately needs STARTTLS and a suitable certificate for its own hostname. A successful website fetch does not demonstrate the SMTP server's configuration. Any later authorized active test should retain the chosen host, connection context, certificate identity and trust result, with the tool's actual scope stated.

A checker that reads only DNS and HTTPS should report the SMTP stage as untested, not healthy. Nor does checking one candidate prove that every MX behaves the same way. Sender implementation and trust stores affect observations, so a single diagnostic vantage is not a guarantee for every correspondent. RFC 8461, section 4.

Plan a controlled move from testing to enforcement

In testing mode, an implementing sender may deliver despite policy validation failures, while compatible TLS reporting can expose those failures. In enforce mode, a sender honoring a valid policy must not deliver to a candidate that fails the required checks. Neither mode turns MTA-STS into SPF, DKIM or DMARC validation; the mechanism concerns SMTP transport.

A proposed transition should have an owner, an approved policy diff, verified primary and backup MX coverage, certificate readiness and a defined observation period. Review relevant TLS reports and actual sender behavior before deciding whether enforcement is acceptable. Absence of reports is not proof of readiness. RFC 8461, section 5 and RFC 8460.

Recovery planning must account for previously cached policies. Deleting discovery or reducing a new max_age cannot instantly shorten an already cached older policy. Retain prior policy bodies and lifetimes and plan an authorized update rather than promising immediate rollback. This guide executes no transition or recovery action.

Leave the actual trace and tool gate open

The catalogue requires: A DNS-to-HTTPS-to-MX validation trace and a controlled testing-to-enforce plan. The proposed checks above are not that trace and are not a tested checker. No environment evidence or approved transition plan has been obtained. Standards and security guidance were reviewed on 8 November 2026; independent technical review, implementation testing, live visual validation and owner publication approval remain outstanding.

[ Takeaway ]

One valid TXT record or HTTPS response cannot establish the full MTA-STS path or justify moving a domain into enforcement.

[ By role ]

What this means for you

Choose your role for practical next steps.

DNS and web operator

Keep discovery and retrieval aligned

The DNS revision identifier, policy endpoint and authenticated response form one dependency chain. A change at one layer can leave another stale or unavailable.

Next steps

  1. Record the exact discovery owner, selected record and revision identifier.
  2. Validate the prescribed policy-host identity, status and content separately.
  3. Retain prior policy bodies and lifetimes for an approved recovery plan.

Mail transport engineer

Include every legitimate MX path

A successful primary path does not establish backup readiness. Policy matching and SMTP certificate checks need host-specific evidence.

Next steps

  1. Compare intended primary and backup MX candidates with exact policy patterns.
  2. Keep HTTPS certificate evidence separate from SMTP STARTTLS and certificate evidence.
  3. Identify sender implementation and trust-store scope before generalizing observations.

Service change owner

Require evidence before enforcement

Enforcement can affect delivery when a candidate fails validation. A testing period is useful only when its coverage and unresolved failures are understood.

Next steps

  1. Approve a precise transition diff, observation window and stop criteria.
  2. Review report collection health alongside transport findings.
  3. Plan recovery around cached older policies and withhold action until authorized.

[ FAQs ]

Frequently asked questions

Is an MTA-STS id a timestamp that can be sorted to find the newest policy?

Not necessarily. RFC 8461 treats it as a revision identifier with no implied ordering. Preserve and compare the exact value rather than interpreting its spelling as a chronology.

Can the policy fetch follow a redirect to a valid-looking text file?

RFC 8461 prohibits following HTTP 3xx redirects for policy retrieval and requires a 200 response. A general browser’s eventual page is therefore not sufficient evidence that the protocol fetch is valid.

Does the policy website certificate prove that the receiving MX is valid?

No. HTTPS authenticates the policy host, while the MX separately needs STARTTLS and a suitable certificate for its own hostname. A DNS-and-HTTPS-only tool must leave the SMTP stage untested.

How far does an MTA-STS wildcard pattern extend?

The wildcard matches only the entire leftmost label. For example, *.example matches mail.example, but not example or a.b.example. A substring or arbitrary-depth suffix match would misinterpret the permitted scope.

Does testing mode prove that enforcement will be safe?

No. Testing allows delivery despite policy-validation failures, and useful reporting depends on compatible participants and collection. Review actual MX coverage, certificates and observed behavior before a separately approved enforcement decision.

Will deleting discovery immediately disable an already cached policy?

No. Lack of a usable discovery record alone does not remove previously cached policy state. Recovery planning must consider older policy bodies and lifetimes rather than promising an instant DNS rollback.

Why does a server-side checker need outbound-request restrictions?

A submitted name can resolve to an unintended internal destination or change resolution over time. Validate the intended target and constrain network access so policy fetching cannot become a route to private services. No such defenses were implemented here.

What remains missing before this can be called a working MTA-STS checker?

An implemented and tested function, a retained DNS-to-HTTPS-to-MX validation trace, and an approved testing-to-enforce plan. This article and its illustrative URL provide none of those operational artifacts.

[ Sources ]

Sources

  1. OWASP Server-Side Request Forgery Prevention Cheat Sheet
  2. RFC 8460: SMTP TLS Reporting
  3. RFC 8461: SMTP MTA Strict Transport Security

[ Glossary ]

Glossary

Policy host
The mta-sts-prefixed HTTPS hostname from which a sender retrieves the policy for a recipient policy domain.
Discovery identifier
The MTA-STS id value identifying a policy revision without specifying an ordering between revisions.
MX pattern match
The protocol-defined comparison between a candidate MX host and a permitted policy entry, including the leftmost-label-only wildcard rule.
Policy cache lifetime
The max_age interval governing a retrieved policy’s lifetime at a sender, distinct from DNS TTL and prohibited HTTP policy caching.
Unexecuted SMTP stage
A clear result state showing that a checker has not observed STARTTLS or the receiving MX certificate, even if DNS and HTTPS were examined.

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base