====== TLS-RPT (SMTP TLS Reporting) ======
**TLS-RPT** (SMTP TLS Reporting) is an email security standard specified in [[https://datatracker.ietf.org/doc/html/rfc8460|RFC 8460]] that enables domain owners to receive automated diagnostic reports regarding TLS encryption failures occurring when remote servers attempt to deliver email to their domain.
It works hand-in-hand with [[email:dns-configuration:mta-sts|MTA-STS]] and [[networking:dns:dnssec|DANE]], providing visibility into deliverability issues caused by expired certificates, cipher suite mismatches, or active Man-in-the-Middle (MitM) attacks.
----
===== How TLS-RPT Works =====
When a sending mail transfer agent (MTA) attempts an encrypted SMTP connection to your mail server:
# **DNS Query:** The sending MTA queries DNS for a TXT record located at ''_smtp._tls.yourdomain.com''.
# **Session Monitoring:** The sending MTA attempts to establish a secure connection based on your domain's [[email:dns-configuration:mta-sts|MTA-STS]] or DANE policy.
# **Report Generation:** If a TLS handshake error, certificate expiration, or policy negotiation failure occurs, the sending server logs the details.
# **Report Delivery:** The sending MTA aggregates these failure events into a JSON report and sends it daily to the email address or HTTPS endpoint specified in your TLS-RPT record.
----
===== TLS-RPT Record Structure & Syntax =====
A TLS-RPT record is published as a single DNS **TXT** record located at the host:
''_smtp._tls.yourdomain.com''
^ Tag ^ Required / Optional ^ Description ^ Example ^
| **v** | **Required** | Protocol version. Must be ''TLSRPTv1''. | ''v=TLSRPTv1;'' |
| **rua** | **Required** | Reporting URI(s) for aggregate reports. Supports email (''mailto:'') and HTTPS POST endpoints. | ''rua=mailto:tls-rpt@telenegar.ir'' |
==== Standard Example (Email Reporting) ====
v=TLSRPTv1; rua=mailto:tls-reports@telenegar.ir;
==== Advanced Example (Email + HTTPS Webhook) ====
v=TLSRPTv1; rua=mailto:tls-reports@telenegar.ir,https://tls-rpt.telenegar.ir/v1/submit;
----
===== What TLS Reports Contain =====
TLS-RPT reports are delivered as compressed JSON files (usually GZipped) containing summary details of connection attempts:
* **Policy Details:** Which protocol was enforced (''mta-sts'', ''dane'', or ''no-policy-found'').
* **Success & Failure Counts:** Number of successful TLS sessions vs. failed attempts.
* **Failure Types:** Specific failure reasons, including:
* ''certificate-expired''
* ''certificate-host-mismatch''
* ''validation-failure'' (CA untrusted)
* ''starttls-not-supported''
==== Sample JSON Failure Excerpt ====
json
{
"organization-name": "Google Inc.",
"date-range": {
"start-datetime": "2026-08-02T00:00:00Z",
"end-datetime": "2026-08-02T23:59:59Z"
},
"policies": [{
"policy": {
"policy-type": "sts",
"policy-string": ["version: STSv1", "mode: enforce", "mx: mail.telenegar.ir"]
},
"summary": {
"total-successful-session-count": 1240,
"total-failure-session-count": 2
},
"failure-details": [{
"result-type": "certificate-expired",
"sending-mta-ip": "203.0.113.5",
"receiving-mx-hostname": "mail.telenegar.ir",
"failed-session-count": 2
}]
}]
}
----
===== Why Implement TLS-RPT? =====
* **Visibility into TLS Failures:** Without TLS-RPT, when an MTA-STS policy fails in ''enforce'' mode, incoming emails are silently dropped without notifying domain admins.
* **Detect Active Attacks:** Identifies downgrade attacks or network interception attempts on your inbound mail traffic.
* **Monitor Certificate Expirations:** Detects when your mail server's SSL/TLS certificate expires before critical mail flow is disrupted.
----
===== Verification & Testing =====
You can verify your TLS-RPT record using **Telenegar Tools** or terminal commands:
==== Using Telenegar Tools ====
* **DNS Lookup:** Verify that your ''_smtp._tls'' TXT record resolves globally with the [[tools:dnscheck|Telenegar DNS Check Tool]].
* **Email Diagnostics:** Audit your full email security stack (SPF, DKIM, DMARC, MTA-STS, TLS-RPT) with the [[tools:mailcheck|Telenegar Mail Check Tool]].
==== Using Terminal Commands ====
=== dig (Linux / macOS) ===
bash
dig +short TXT _smtp._tls.example.com
=== nslookup (Windows / Cross-platform) ===
cmd
nslookup -type=TXT _smtp._tls.example.com
----
===== Related Documentation =====
* [[tools:dnscheck|Telenegar DNS Check Tool]] — Diagnostic tool for DNS record lookup and propagation.
* [[tools:mailcheck|Telenegar Mail Check Tool]] — Diagnostic tool for email authentication and encryption health.
* [[email:dns-configuration:mta-sts|MTA-STS]] — Enforce TLS encryption requirements for incoming mail.
* [[email:dns-configuration:dmarc|DMARC]] — Receive email authentication failure reports.
* [[email:dns-configuration:mx-records|MX Records]] — Configure mail exchanger targets for your domain.