πŸ“Š

DNS Mail TLS-RPT

Security Auditor

Validates TLS-RPT for email security monitoring

SecurityDNSMail
30 credits
Per check
~30 seconds
Average runtime
Active
Status

Run this auditor

3 of 3 free audits left today

See what DNS Mail TLS-RPT finds on your site. No sign-up needed.

How it works

  1. Domain β€” takes the hostname of the audited URL and strips one leading www.; https://www.example.com/page audits example.com. The audited page is never fetched.

  2. Lookup β€” resolves the TXT records of _smtp._tls.<domain> with the system resolvers. A resolver failure (SERVFAIL, timeout) ends the audit with 500; a URL without a hostname ends it with 501.

  3. Rules β€” no TXT record at all warns (300, TLS-RPT is optional). Every TXT record that does not start with v=TLSRPTv1 fails (400). More than one v=TLSRPTv1 record warns (301): RFC 8460 section 3 tells senders to ignore reporting then. A v=TLSRPTv1 record whose tag list (;-separated key=value pairs) has no rua tag fails (401).

  4. Aggregate β€” FAIL wins over WARNING; when every rule passes the audit is SUCCESS (200) and the message names the record and its rua.

  5. Specification pin β€” every run emits 37A-DnsMailTlsRptAuditor-100 (INFORMATION), naming RFC 8460 SMTP TLS Reporting (September 2018). It does not change the overall status.

What this auditor validates

Every row maps to one checkRule* method and one CheckCode, in the order the auditor runs them. CheckCode suffixes use status ranges: 100 information, 200 success, 300–399 warning, 400–499 fail, 500–599 error.

CheckCodeStatusWhen it firesRecommendationWhy it matters
37A-DnsMailTlsRptAuditor-100INFORMATIONAlways. Records the specification this auditor implements (RFC 8460, 2018-09).β€” (recommendation is null; nothing for the site to change)β€”
37A-DnsMailTlsRptAuditor-300WARNING_smtp._tls.<domain> has no TXT record at all (NXDOMAIN, NODATA or an empty answer).Publish a TXT record at "{fqdn}" such as "v=TLSRPTv1; rua=mailto:tls-reports@{domain}" so sending servers can report failed TLS connections to {domain}.Without TLS-RPT you never hear about sending servers that fail to deliver mail to you over TLS, so a broken certificate or a downgrade attempt on your mail domain goes unnoticed.
37A-DnsMailTlsRptAuditor-400FAILA TXT record at _smtp._tls.<domain> does not start with v=TLSRPTv1 (case-insensitive); one check per record.Replace "{record}" at "{fqdn}" with a record that starts with "v=TLSRPTv1" and names a reporting address, for example "v=TLSRPTv1; rua=mailto:tls-reports@{domain}".Sending servers ignore a record that does not start with the TLS-RPT version tag, so the domain receives no reports of failed TLS connections.
37A-DnsMailTlsRptAuditor-301WARNINGMore than one v=TLSRPTv1 TXT record is published at _smtp._tls.<domain>.Keep exactly one "v=TLSRPTv1" TXT record at "{fqdn}" and remove the other {count - 1}; currently published: {records}.Senders that find more than one TLS-RPT record drop reporting entirely, so the domain gets no failure reports even though a record is published.
37A-DnsMailTlsRptAuditor-401FAILA v=TLSRPTv1 record has no rua tag, or an empty one, in its tag list; one check per record.Add a rua tag to "{record}" at "{fqdn}", for example "v=TLSRPTv1; rua=mailto:tls-reports@{domain}".The rua tag is where reports are sent; without it the record is unusable and failed TLS deliveries to the mail domain stay invisible.
37A-DnsMailTlsRptAuditor-200SUCCESSAll rules passed: exactly one v=TLSRPTv1 record with a rua tag. Message names the record and its rua.β€”β€”
37A-DnsMailTlsRptAuditor-500ERRORThe resolver could not answer the TXT lookup of _smtp._tls.<domain> (SERVFAIL, timeout). The record may well exist.Check that the DNS zone answers TXT queries for "{fqdn}" (the resolver reported "{error}"), then run the audit again.β€”
37A-DnsMailTlsRptAuditor-501ERRORThe audited URL is null, blank, malformed or has no hostname, so there is no domain to look up.Monitor a URL with a hostname, such as https://example.com/, instead of "{url}" ({reason}).β€”

Output Documentation

StatusDescriptionTest logic
SUCCESSTLS-RPT is configuredExactly one v=TLSRPTv1 record at _smtp._tls.<domain> with a non-empty rua tag (200).
WARNINGNo reporting, or reporting is ignoredNo TXT record at _smtp._tls.<domain> (300); more than one v=TLSRPTv1 record (301).
FAILThe published record is unusableA TXT record that does not start with v=TLSRPTv1 (400); a v=TLSRPTv1 record without a rua tag (401).
ERRORThe auditor could not look the record upDNS lookup failure (500); URL without a hostname (501).
INFORMATIONSpecification pinAlways emitted (100); does not change overall status.

Risks and Considerations

Why TLS-RPT matters

  • TLS-RPT is the feedback channel of MTA-STS and DANE: without it, a policy that blocks delivery because of an expired certificate or a wrong hostname produces silent bounces on the sender's side and nothing on yours.

  • Reports also reveal active downgrade attempts (STARTTLS stripping) against your mail domain.

  • It only reports; it does not enforce anything, so publishing a record carries no delivery risk.

Record format

  • The record lives at _smtp._tls.<domain>, not at the domain itself, and must start with v=TLSRPTv1.

  • rua takes one or more comma-separated URIs: mailto: addresses or https: endpoints that accept the JSON reports.

  • Publish exactly one record. RFC 8460 section 3 tells senders to treat more than one as "no record".

Changes from the previous version of this auditor

  • A record that does not start with v=TLSRPTv1 and a record without rua were WARNING; they are now FAIL (400, 401), because RFC 8460 requires rua.

  • A URL that is null, blank, malformed or has no hostname was FAIL; it is now ERROR (501): the site is not at fault.

  • A DNS resolver failure (SERVFAIL, timeout) was reported as "no record" (WARNING); it is now ERROR (500), so a resolver problem is not mistaken for a missing record.

  • More than one v=TLSRPTv1 record is a new WARNING (301); the old auditor read only the first record.

  • The rua tag is now parsed from the record's tag list instead of matched as a substring, so xrua= no longer counts.

What this auditor does not check

  • The reporting URIs are not validated beyond being present: an unreachable https: endpoint or a mailbox that bounces is not detected.

  • The MTA-STS and DANE policies that TLS-RPT reports on are audited by their own auditors.

  • The domain is taken from the audited URL (minus one leading www.); mail for that domain may be handled by a different domain whose record is not checked.

This documentation is built and hosted on Mintlify, a developer documentation platform.

Source: docs.37audits.com

Ready to start auditing?

Add this auditor to your monitoring setup and start identifying issues on your websites today.

Β© 2026 37 Audits. All rights reserved. Audit your websites with confidence.

Supported by

Made with ❀️ in Floripa