Why check your TLS-RPT
SMTP transport uses TLS opportunistically: if negotiation fails, the connection falls back to cleartext silently. Your emails go out in the clear and nobody warns you. Worse, a man-in-the-middle can actively strip STARTTLS to force that fallback.
TLS-RPT (RFC 8460) does not fix the encryption gap (MTA-STS does), but it finally gives you visibility. Every sending MTA that fails to establish TLS emits a JSON report to the rua address you publish. Without this mechanism, you are blind.
Verifying the configuration before forgetting about it in a corner of DNS is essential:
- Missing record → you know nothing about TLS failures, no audit trail
- Invalid rua URI → MTAs cannot deliver the reports, they get dropped
- Multiple records → sending MTAs ignore a duplicated TLS-RPT, no report is sent
Common use cases:
- After publishing → confirm the record is correctly propagated
- Email security audit → validate TLS coverage and failure visibility
- Before MTA-STS enforce → make sure TLS-RPT collects reports during the testing phase
How to use this checker in 3 steps
Step 1: enter the domain to analyze
Type the domain exactly as it appears in your email addresses:
captaindns.com(main domain)marketing.captaindns.com(subdomain if you send from a subdomain)
The tool automatically queries _smtp._tls.domain and retrieves the published TXT record.
Step 2: review the results
The checker displays:
| Element | Description |
|---|---|
| TXT record | Raw content published on _smtp._tls.domain |
| Version | Must be exactly TLSRPTv1 |
| rua URIs | Report destinations (mailto, https) |
| rua destination | Internal rua (same domain) or external (third-party domain) |
| Unknown tags | Fields outside RFC 8460, flagged as info |
| MTA-STS consistency | Presence of an _mta-sts.domain companion |
Step 3: fix the flagged issues
Results are graded by severity:
- Critical → the record is invalid, no report will be sent
- Warning → working but exposes risk or partial coverage
- Info → non-blocking best practice (unknown tag, MTA-STS missing)
Fix the DNS, wait for propagation, then run the checker again.
What is TLS-RPT
TLS-RPT (SMTP TLS Reporting, RFC 8460) is a mechanism that:
- Publishes a report address in DNS for the receiving domain
- Asks sending MTAs to emit a JSON report when TLS fails
- Provides a trail of encryption failures (expired certificate, downgrade, mismatch)
The architecture is deliberately minimal: a single TXT record published at _smtp._tls.domain, containing the version and one or more rua= URIs.
Example TLS-RPT record:
_smtp._tls.captaindns.com. IN TXT "v=TLSRPTv1; rua=mailto:tls-reports@captaindns.com"
This record tells sending MTAs (Gmail, Outlook, etc.) to send their TLS failure reports to tls-reports@captaindns.com.
Difference from MTA-STS: TLS-RPT is the companion of MTA-STS, not an alternative. MTA-STS enforces TLS encryption, TLS-RPT reports failures. The two protocols live at separate locations (_mta-sts.domain for STS, _smtp._tls.domain for RPT) and work together.
What the checker verifies
Five dimensions are analyzed in parallel to produce a 0-100 score:
Published DNS record
| Check | Error if... |
|---|---|
TXT present at _smtp._tls.domain | No record found |
Starts with v=TLSRPTv1 | Prefix missing or wrong case |
| Single record | Multiple TLS-RPT TXTs detected |
Record syntax
| Check | Error if... |
|---|---|
v= tag in first position | Version missing or not first |
rua= tag present | No destination defined |
Exact value TLSRPTv1 | Variants like TLSRPT1 or tlsrptv1 |
Reporting URIs
| Check | Error if... |
|---|---|
mailto: valid | Malformed email address, whitespace forbidden |
https: valid | Missing scheme or malformed URL |
| At least one URI | Empty rua tag |
rua quality
- The rua URI domain matches the checked domain (internal destination)
- The domain is different (external destination): valid with no recipient-side authorization
- The https URI answers with valid HTTPS (light server-side probe)
Overall hygiene
- MTA-STS published alongside (score bonus +2)
- No unknown tag polluting the record
- Policy consistent with the domain's mail deployment
Common diagnostics and fixes
Missing record (missing_record)
Cause: no TXT exists at _smtp._tls.captaindns.com.
Fix: publish
_smtp._tls.captaindns.com. IN TXT "v=TLSRPTv1; rua=mailto:tls-reports@captaindns.com"
Missing rua tag (rua_missing)
Cause: the record contains v=TLSRPTv1 but no destination.
Fix: add at least one URI: v=TLSRPTv1; rua=mailto:tls-reports@captaindns.com. Without rua, no MTA will send a report.
Invalid rua URI (rua_invalid_uri)
Cause: the URI is malformed (missing mailto:, whitespace in the address, unknown scheme).
Fix examples:
- rua=tls-reports@captaindns.com # Missing mailto:
+ rua=mailto:tls-reports@captaindns.com
- rua=mailto: tls-reports@captaindns.com # Whitespace after mailto: forbidden
+ rua=mailto:tls-reports@captaindns.com
Multiple records (multiple_records)
Cause: more than one TLS-RPT TXT exists at _smtp._tls.captaindns.com.
Fix: RFC 8460 §3 mandates a single record. Identify duplicates, keep the one to apply, remove the rest.
CNAME on _smtp._tls (cname_on_smtp_tls)
Cause: _smtp._tls.domain is a CNAME pointing elsewhere.
Fix: no RFC forbids a CNAME at this location. The checker reports it as a warning, not an error: Microsoft 365 ignores an aliased _smtp._tls. A direct TXT record remains the safe setup.
MTA-STS companion missing (mta_sts_companion_missing)
Cause: TLS-RPT is published but MTA-STS is not.
Fix: deploy MTA-STS to give TLS-RPT reports a purpose. See the MTA-STS Checker and the complete guide.
Send reports to a third-party domain
You can direct your TLS-RPT reports to a domain you do not control, for example a third-party analyzer. Unlike DMARC, RFC 8460 defines no recipient-side authorization record: a rua pointing to a third-party domain works with no extra publication.
The mechanism
Your domain: captaindns.com
rua URI: mailto:tls-reports@uriports.com
No record is required on uriports.com. The report is sent directly. Trust rests on two safeguards laid out in RFC 8460 §7:
- mailto: the report is DKIM-signed by the sending MTA, which authenticates its origin.
- https: the destination domain controls its own collection endpoint (DNS ownership).
RFC 8460 §7 deliberately dropped any additional verification mechanism, since the amplification risk is lower than with DMARC.
Common pitfalls
- Do not carry over the DMARC mechanism: DMARC requires a
[domain]._report._dmarc.[third-party]record to authorize a rua to a third-party domain. TLS-RPT has no equivalent. Publishing a_report._tlsrecord is pointless and no MTA expects it. - Verify the destination: simply make sure the mailto address or the https collection URL is correct and operational.
TLS-RPT and MTA-STS: combined deployment
The two protocols form defense in depth:
| Protocol | Role | Location |
|---|---|---|
| MTA-STS | Enforces TLS encryption (RFC 8461) | _mta-sts.domain + HTTPS policy |
| TLS-RPT | Reports failures (RFC 8460) | _smtp._tls.domain |
Recommended deployment order
- Publish TLS-RPT first to collect reports
- Deploy MTA-STS in testing mode without blocking delivery
- Observe the TLS-RPT reports for 2 to 4 weeks to identify problem MX hosts
- Switch MTA-STS to enforce mode when reports are clean
- Keep TLS-RPT indefinitely for continuous monitoring
Without MTA-STS: TLS-RPT reports failures but no policy compels sending MTAs to use TLS. You see the problems without being able to prevent them.
Without TLS-RPT: MTA-STS enforces TLS but you will never know that a legitimate MTA is blocked by your policy. Risk of silent non-delivery.
Complementary tools and resources
| Tool | Purpose |
|---|---|
| TLS-RPT Syntax Validator | Validate a record's syntax BEFORE publishing |
| TLS-RPT Generator | Create an RFC 8460 compliant record |
| MTA-STS Checker | Verify the matching MTA-STS deployment |
| MTA-STS Hosting | Host your policy for free with managed TLS |
| DMARC Checker | Complete email authentication with DMARC |
| DANE TLSA Checker | DNSSEC alternative for TLS security |
| TLS-RPT Report Analyzer | Decode received JSON reports |
| TLS-RPT Monitoring | Automatically receive and analyze your TLS-RPT reports |
Resources: