TLS-RPT

TLS-RPT (SMTP TLS Reporting, RFC 8460) — механизм отправки отчётов о неудачных TLS-подключениях при доставке почты в твой домен. Отчёты приходят от других почтовых серверов (Google, Microsoft, Yahoo). Полезно для отладки TLS/SMTP и диагностики MTA-STS.

Как работает

  1. Домен публикует TXT-запись с адресом для отчётов.
  2. Отправляющие серверы, если у них не получилось установить TLS или проверить MTA-STS-политику, копят статистику.
  3. Раз в 24 часа шлют агрегированный JSON-отчёт по указанному адресу.

Настройка

_smtp._tls.example.com.  IN TXT  "v=TLSRPTv1; rua=mailto:tls-reports@example.com"

Или на HTTPS:

_smtp._tls.example.com.  IN TXT  "v=TLSRPTv1; rua=https://reports.example.com/tls"

Можно несколько адресатов:

"v=TLSRPTv1; rua=mailto:tls@example.com,mailto:security@example.com"

Формат отчёта

JSON, gzip'нутый, в attachment письма (или на HTTPS POST). Пример:

{
  "organization-name": "Google Inc.",
  "date-range": {
    "start-datetime": "2026-07-15T00:00:00Z",
    "end-datetime":   "2026-07-16T00:00:00Z"
  },
  "contact-info": "smtp-tls-reporting@google.com",
  "report-id": "2026-07-15T00:00:00Z_example.com",
  "policies": [
    {
      "policy": {
        "policy-type":   "sts",
        "policy-string": ["version: STSv1", "mode: enforce", "mx: mail.example.com"],
        "policy-domain": "example.com",
        "mx-host":       ["mail.example.com"]
      },
      "summary": {
        "total-successful-session-count": 1247,
        "total-failure-session-count":    3
      },
      "failure-details": [
        {
          "result-type":              "certificate-expired",
          "sending-mta-ip":           "209.85.220.41",
          "receiving-mx-hostname":    "mail.example.com",
          "failed-session-count":     3
        }
      ]
    }
  ]
}

Типы failure

Result-typeЧто случилось
starttls-not-supportedПриёмник не предложил STARTTLS
certificate-host-mismatchCN/SAN серта не совпал с MX-именем
certificate-expiredПросрочен
certificate-not-trustedUntrusted CA (self-signed)
validation-failureОбщее «TLS handshake не удался»
sts-policy-fetch-errorНе смог скачать MTA-STS политику
sts-policy-invalidПолитика есть, но битая
sts-webpki-invalidСерт HTTPS-эндпоинта невалиден
tlsa-invalidDANE-TLSA-запись битая
dnssec-invalidDNSSEC-проверка не прошла
dane-requiredDANE требует TLS, а не сработало

Практика

  1. Опубликовать TXT.
  2. Создать почтовый ящик tls-reports@example.com.
  3. Ждать неделю.
  4. Прогонять полученные JSON через парсер, смотреть где failure.

Инструменты

Общие проблемы находимые через TLS-RPT

Комбо для полной SMTP-security

# DNS-записи для example.com
_dmarc     TXT   "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"
_mta-sts   TXT   "v=STSv1; id=20260716"
_smtp._tls TXT   "v=TLSRPTv1; rua=mailto:tls-rpt@example.com"

# SPF на apex
@          TXT   "v=spf1 mx -all"

# DKIM
mail._domainkey  TXT  "v=DKIM1; k=rsa; p=..."

См. также