TLS-RPT is one TXT record at _smtp._tls.yourdomain that asks other mail servers to send you reports about TLS problems they had while delivering mail to you. It is the feedback channel for MTA-STS and DANE: without it, you find out about a broken certificate from your users’ missing mail.
_smtp._tls.example.com. 3600 IN TXT "v=TLSRPTv1; rua=mailto:[email protected]"
RFC 8460 §3 defines the record: it must begin with the version tag v=TLSRPTv1, and the rua directive is required. Check whether your domain publishes it with the email score or the DNS lookup (type TXT, name _smtp._tls.yourdomain).
The rua value
| Form | Example | How reports arrive |
|---|---|---|
mailto: | rua=mailto:[email protected] | Email with a (usually gzipped) JSON attachment, §5.3 |
https: | rua=https://tlsrpt.example.com/v1 | HTTP POST of the report to your endpoint, §5.4 |
| Both | rua=mailto:[email protected],https://x.example.com/v1 | Comma-separated; senders pick |
Use a dedicated mailbox rather than a person’s inbox, because each reporting sender mails its own file. If you point rua to a different domain, check the reporting service’s documentation for any extra record it needs. Reporting services that accept https: endpoints publish the exact value to use.
What does a TLS-RPT report contain?
Per §4, a report is a JSON file covering a time frame, normally 24 hours. It includes:
- the policy the sender applied:
policy-typeissts(MTA-STS),tlsa(DANE), orno-policy-found; - counts of successful and failed sessions;
- for failures, a
result-typesuch asstarttls-not-supportedorcertificate-expired, with the sending and receiving IPs and the MX host.
Failures that senders report include negotiation problems (no STARTTLS offered), certificate problems (expired, name mismatch, untrusted), and policy-fetch failures for MTA-STS. The full list is in §4.3. A typical mistake it exposes: an MX host missing from the mx: list in your MTA-STS policy, or a renewed certificate not installed on the secondary MX.
Reports are plain JSON and readable with zcat report.json.gz | less. If volume is larger than you want to read by hand, a TLS-RPT processing service will parse them; that is a choice, not a requirement.
Does TLS-RPT work with MTA-STS and DANE?
- With MTA-STS in
testingmode, TLS-RPT is how you learn whatenforcewould break. Publish it before you start the testing period so the first reports cover the whole period. - With DANE (RFC 7672),
tlsareports show validation failures of your TLSA records. RFC 8460 states that it adds reporting for DANE as well as MTA-STS. - TLS-RPT can be published alone. The
policy-typevalueno-policy-foundexists in the schema for sessions where the sender found neither MTA-STS nor DANE.
Publish and verify
- Create the mailbox or HTTPS endpoint that will receive reports.
- Add the TXT record at
_smtp._tls, not at the apex. One record only. - Query it back. The
v=TLSRPTv1tag must come first, andruamust contain a validmailto:orhttps:URI. - Wait a day or two. Reports only come from senders that support TLS-RPT and that actually delivered mail to you, so a quiet domain may see few of them.
Trade-off: the reports tell outsiders nothing, but your mailbox will receive data about which hosts sent you mail. If you send reports to a third-party service, that service sees it too.
FAQ
Is TLS-RPT useful without MTA-STS?
Less so. RFC 8460 is built around reporting on MTA-STS and DANE validation, and its schema (§4) has a no-policy-found type for sessions where the sender found neither. Without a policy, there are no policy-validation failures to report, so the reports carry little detail. Publish TLS-RPT together with MTA-STS or DANE to get failure reasons you can act on.
Will TLS-RPT change how my mail is delivered? No. The record only asks senders to report on TLS results, and RFC 8460 §3 defines it as a reporting policy, not a delivery policy. Whether a message is delivered, deferred or refused after a TLS failure is decided by the sender’s handling of your MTA-STS policy (RFC 8461 §5) or DANE records (RFC 7672), not by TLS-RPT.
Why have I received no reports?
Reports arrive only from senders that implement TLS-RPT and have attempted delivery to you in the reporting period, normally 24 hours (RFC 8460 §4). Confirm the record sits at _smtp._tls, starts with v=TLSRPTv1, and that the mailto: mailbox accepts compressed attachments. A quiet domain may see few reports even when everything is correct.
Sources
- RFC 8460, SMTP TLS Reporting: https://www.rfc-editor.org/rfc/rfc8460
- RFC 8460, §3 Reporting Policy: https://www.rfc-editor.org/rfc/rfc8460#section-3
- RFC 8460, §4 Reporting Schema: https://www.rfc-editor.org/rfc/rfc8460#section-4
- RFC 8460, §5.3 Email Transport and §5.4 HTTPS Transport: https://www.rfc-editor.org/rfc/rfc8460#section-5.3
- RFC 8461, SMTP MTA Strict Transport Security: https://www.rfc-editor.org/rfc/rfc8461
- RFC 7672, SMTP Security via Opportunistic DANE TLS: https://www.rfc-editor.org/rfc/rfc7672