Free TLS-RPT Record Checker

Read the TLS-RPT record a domain publishes at _smtp._tls, check it against RFC 8460, and see exactly where its TLS reports are being sent. It runs free in your browser over DNS-over-HTTPS, with no signup and nothing stored.

Catch problems before they cost you.

Create a free Unspam account to save your results and re-run these checks anytime, so you catch a broken setup before it costs you. No credit card.

What is TLS-RPT?

TLS-RPT is a DNS record that asks receiving mail servers to tell you how encryption went when they delivered mail to you. Servers that support it send a summary once a day, listing how many connections negotiated TLS successfully and how many failed, with the reason. Publishing it changes nothing about how your mail is delivered: it is a feedback channel, not a policy. What it buys you is finding out that a certificate expired, that a mail host stopped offering STARTTLS, or that an MTA-STS policy is failing, before a customer tells you. The record is a single line, it lives at _smtp._tls under your domain, and this checker reads the whole of it, because unlike MTA-STS there is no second half sitting behind a web server a browser cannot reach.

How to read your result

  • v=TLSRPTv1

    The version, which must be the first thing in the record and must be spelled exactly that way. RFC 8460 defines it as case-sensitive text and tells senders to discard anything that does not begin with v=TLSRPTv1 followed by a semicolon, so v=tlsrptv1 is not a typo with cosmetic consequences: it is a record nobody reads.

  • rua=

    Where the reports go. It takes one address or a comma-separated list, and only two kinds are allowed: mailto: for an inbox and https: for an endpoint that accepts a POST. Reports are JSON, gzipped, and arrive roughly daily from each provider that supports the standard.

  • Exactly one record

    If a sender finds more than one TLS-RPT record at the name, RFC 8460 says it must treat the domain as not implementing TLS-RPT at all. Two records is not a backup, it is an off switch, which is the same rule SPF and DMARC use and the same mistake people make when they add a second record instead of editing the first.

  • Anything else

    The standard defines an extension slot for future fields and tells senders to ignore any field they do not recognise, so an unknown tag can never break a record. Across every mailbox provider, relay and hosting operator this checker was tested against, no live record carries anything beyond the version and rua.

Common problems and fixes

The version tag is in the wrong case

v=tlsrptv1 or v=TLSRPTV1 look right and collect nothing. The record is discarded before it is parsed, so there is no error anywhere: reports simply never arrive, and the only symptom is silence you were not expecting to be broken.

Two records at _smtp._tls

Usually the result of adding a new record during a migration instead of editing the old one. It switches reporting off rather than sending to both. Keep one record listing both destinations in its rua instead.

A comma or exclamation point that is not encoded

The comma separates the destination list, so an unencoded one inside an address splits it in half. The exclamation point is the DMARC size-limit suffix, which TLS-RPT does not have, and it must be written as %21. Both are required to be percent-encoded and both silently mangle the destination list.

An http destination instead of https

Only mailto and https exist. A plain http endpoint is not a scheme any sender will use, so the reports are dropped rather than downgraded.

The reporting mailbox nobody reads

TLS reports arrive as gzipped JSON, daily, from every provider that supports the standard. Pointed at a shared inbox they become noise inside a week. Point them at a mailbox or an analytics service that parses them, or the record is doing nothing useful.

Expecting TLS-RPT to enforce anything

It reports, it does not require. If you want receiving servers to insist on TLS when they deliver to you, that is MTA-STS or DANE. TLS-RPT is how you find out whether either of them is working, which is why the two are usually deployed together.

Questions, answered.

Does publishing TLS-RPT change how my email is delivered?
No. It asks receiving servers for a daily report on how TLS negotiation went, and nothing about that changes routing, filtering or whether a message is accepted. It is safe to publish on any domain.
Do I need MTA-STS before TLS-RPT is useful?
No, but they work well together. Without a policy, the reports tell you how often opportunistic TLS is succeeding. With one, they tell you when the policy is failing, which is the part you cannot see any other way.
Can I send the reports to a third party?
Yes, and unlike DMARC it needs no setup on their side. A DMARC rua address at another domain has to publish an authorization record before reports are sent; RFC 8460 has no such step, so a TLS-RPT destination is trusted on your say-so alone.
Why does my record show as not read as TLS-RPT?
Almost always the version tag. It has to read exactly v=TLSRPTv1 followed by a semicolon, with that capitalisation, and senders discard the record rather than repair it. Republish it in the exact form and the reports start arriving.
Is the check live?
Yes. It queries current DNS over DNS-over-HTTPS directly from your browser, with no signup and nothing stored. To see how the mail you send is authenticated, run a free email health check.

A clean record is step one. See where your email actually lands.