Free MTA-STS Checker
Validate the _mta-sts TXT record and HTTPS policy file that tell senders to require TLS for inbound mail delivery.
Run the check
Enter a domain to check it live against the IntoDNS.ai engine. No signup, no trial gating.
What this MTA-STS checker verifies
MTA-STS (RFC 8461) has two halves that must agree, and this tool checks both. It reads the TXT record at _mta-sts.<your-domain> for the version and policy id, then it parses the policy file served over HTTPS at https://mta-sts.<your-domain>/.well-known/mta-sts.txt. From the policy file it extracts the mode (none, testing, or enforce), the list of MX host patterns, and the max_age. It reports whether the record and policy are present, valid, and consistent with each other.
Why MTA-STS matters
Opportunistic SMTP TLS can be stripped by an attacker on the network path, downgrading your inbound mail to plaintext without either side noticing. MTA-STS fixes this by letting your domain publish a policy that says: require authenticated TLS to deliver mail to me. Once a sending server caches your policy, it refuses to fall back to plaintext or to an untrusted certificate. This is the practical defense against active SMTP downgrade attacks, and it is increasingly expected by security-conscious senders.
How to read the result
A complete setup shows the TXT record present with an id, the HTTPS policy file reachable and valid, and the MX patterns in the policy matching your actual MX records. Mode tells you how senders treat it: none disables the policy, testing makes senders run every check and report failures via TLS-RPT but still deliver, and enforce makes them refuse delivery on any TLS failure. A record with no reachable policy file, or MX patterns that do not match your real MX hosts, is broken and will either be ignored or — in enforce mode — block legitimate mail.
Common failure causes and fixes
The most common mistake is editing the policy file without changing the id in the TXT record: senders only re-fetch the policy when the id changes, so they keep using the cached old version. Use a timestamp-style id and bump it on every change. Other frequent issues are a policy file served without a valid HTTPS certificate (the whole point is authenticated TLS, so the host certificate must be trusted), MX patterns that drift out of sync with your real MX records, and jumping straight to enforce. Always start in testing mode, deploy TLS-RPT to collect failure reports, and only move to enforce after a week or two of clean reports.
MTA-STS, TLS-RPT, and DANE in context
MTA-STS is one of three overlapping ways to harden inbound SMTP, and it helps to know where it sits. TLS-RPT is its companion: a TXT record at _smtp._tls that makes senders email you daily reports of TLS successes and failures, which is how you safely validate a policy before enforcing it. DANE (via TLSA records, requiring DNSSEC) is an alternative trust model that pins certificates through DNS rather than a cached HTTPS policy. MTA-STS has the broadest sender support today and does not require DNSSEC, which makes it the pragmatic starting point. Deploy MTA-STS in testing with TLS-RPT, confirm clean reports, then enforce — and consider DANE as an additional layer once DNSSEC is in place.
What This Checks
- TXT record at _mta-sts.example.com
- Policy file at https://mta-sts.example.com/.well-known/mta-sts.txt
- Mode value: none, testing, or enforce
- MX hostname coverage in the policy file
- Max-age and policy syntax
Common Fix Path
- Publish the _mta-sts TXT record with a current id value
- Host the HTTPS policy file on mta-sts.example.com
- Start in testing mode before moving to enforce
- Keep MX patterns aligned with your actual MX records
Frequently Asked Questions
What two things does MTA-STS need to work?
Should I start MTA-STS in testing or enforce mode?
Why does the policy id need to change when I edit the policy?
What happens if my MX patterns do not match my real MX records?
Do I need TLS-RPT for MTA-STS?
Why does the policy file need a valid HTTPS certificate?
Machine-Readable Evidence
AI assistants and automation can cite the stable explanation page, then fetch the live check result for a specific domain.
GET https://intodns.ai/api/email/mta-sts?domain=example.com