← RFC Reference

RFC 8460: SMTP TLS 报告 (TLSRPT)

Current Standard Abuse Reporting & Feedback Published March 2026
ELI5: 你发布了一份 MTA-STS 政策,说明"发送邮件给我时始终使用 TLS"。但你如何知道发件人是否真的能够安全地连接?TLSRPT 是反馈机制——发送服务器在向你的域投递时收集 TLS 成功和失败的数据,并每天向你发送一份 JSON 报告,以便你能发现问题。

存在的原因

两项标准对服务器间电子邮件强制实施TLS:MTA-STS(RFC 8461)和DANE(RFC 7672)。两者都告诉发送服务器"在向此域投递邮件之前必须建立有效的TLS连接"。但当TLS协商失败时,发送服务器要么回退到明文(不安全)要么拒绝投递(邮件丢失)。无论哪种情况,接收域都不知道存在问题。

TLSRPT填补了这一可见性缺口。域所有者发布DNS记录来请求TLS报告,发送MTA将其TLS连接结果聚合为每日JSON报告,通过电子邮件或HTTPS投递。

没有TLSRPT,你可能部署了MTA-STS但存在证书错误,却没意识到大量进入的邮件被拒绝或以不安全方式投递。

工作原理

第1步:发布TLSRPT DNS记录

在_smtp._tls.yourdomain.com添加TXT记录,指定报告应发送到何处:

; 通过电子邮件发送TLS报告 _smtp._tls.example.com. IN TXT "v=TLSRPTv1; rua=mailto:tlsrpt@example.com" ; 通过HTTPS POST发送TLS报告 _smtp._tls.example.com. IN TXT "v=TLSRPTv1; rua=https://report.example.com/tlsrpt" ; 发送到多个目标 _smtp._tls.example.com. IN TXT "v=TLSRPTv1; rua=mailto:tlsrpt@example.com,https://report.example.com/tlsrpt"

第2步:发送服务器收集数据

当发送MTA向你的域投递邮件时,它记录TLS协商结果:成功会话(有效证书)、握手失败、证书不匹配、MTA-STS策略失败、DANE验证失败等。

第3步:每日报告投递

每天一次,发送MTA聚合其结果并发送JSON报告。通过电子邮件投递时,它作为multipart/report消息到达,其中report-type=tlsrpt:

Content-Type: multipart/report; report-type=tlsrpt;
    boundary="TLSRPT-001"

--TLSRPT-001
Content-Type: text/plain

SMTP TLS report for example.com
Report period: 2026-03-10T00:00:00Z to 2026-03-11T00:00:00Z

--TLSRPT-001
Content-Type: application/tlsrpt+json

{
  "organization-name": "Sender Corp",
  "date-range": {
    "start-datetime": "2026-03-10T00:00:00Z",
    "end-datetime": "2026-03-11T00:00:00Z"
  },
  "contact-info": "postmaster@sendercorp.com",
  "report-id": "2026-03-10-example.com",
  "policies": [{
    "policy": {
      "policy-type": "sts",
      "policy-string": ["version: STSv1", "mode: enforce",
        "mx: mail.example.com", "max_age: 604800"],
      "policy-domain": "example.com"
    },
    "summary": {
      "total-successful-session-count": 9450,
      "total-failure-session-count": 12
    },
    "failure-details": [{
      "result-type": "certificate-expired",
      "sending-mta-ip": "198.51.100.1",
      "receiving-mx-hostname": "mail.example.com",
      "failed-session-count": 12
    }]
  }]
}

--TLSRPT-001--

关键技术细节

DNS记录格式

标签 必需 说明
v 是 版本;必须是TLSRPTv1
rua 是 报告URI。mailto:用于电子邮件投递,https:用于HTTPS POST。多个目标用逗号分隔。

失败结果类型

result-type 含义
starttls-not-supported 接收服务器未通告STARTTLS
certificate-host-mismatch 证书主机名与MX主机名不匹配
certificate-expired 服务器的TLS证书已过期
certificate-not-trusted 证书未由受信任的CA签名
validation-failure 常见TLS验证失败
sts-policy-invalid MTA-STS策略无法获取或解析
sts-webpki-invalid MTA-STS策略主机证书无效
tlsa-invalid DANE TLSA记录格式错误
dnssec-invalid TLSA查询的DNSSEC验证失败
dane-required 需要DANE但TLSA记录不存在

策略类型

policy-type 含义
sts MTA-STS策略(RFC 8461)
tlsa DANE TLSA记录(RFC 7672)
no-policy-found 未找到该域的MTA-STS或DANE策略

常见错误

可投递性影响

Related RFCs