背景与价值
MTA-STS可强制邮件传输使用TLS;TLSRPT可收集失败与报告。统一治理有助于提高送达与安全性。
统一规范
| - MTA-STS策略:`version: STSv1`、`mode: enforce | testing`、`mx` 列表与 `max_age`。 |
|---|
- TLSRPT:`v=TLSRPTv1; rua=mailto:[email protected]`。
- 域与路径:策略通过 `mta-sts` 子域的HTTPS端点发布。
核心实现
TXT与策略校验
function validTlsRpt(txt: string): boolean { return /^v=TLSRPTv1;\s*rua=mailto:[^\s]+$/i.test(txt) }
type Sts = { version: string; mode: 'enforce'|'testing'; mx: string[]; max_age: number }
function parseSts(s: string): Sts | null {
const lines = s.split(/\r?\n/).map(l => l.trim()).filter(Boolean)
const out: any = { mx: [] }
for (const l of lines) {
const [k,v] = l.split(':').map(x => x.trim())
if (k === 'version') out.version = v
else if (k === 'mode') out.mode = v
else if (k === 'mx') out.mx.push(v)
else if (k === 'max_age') out.max_age = Number(v)
}
if (out.version !== 'STSv1') return null
if (!['enforce','testing'].includes(out.mode)) return null
if (!Array.isArray(out.mx) || out.mx.length === 0) return null
if (!Number.isInteger(out.max_age) || out.max_age <= 0) return null
return out as Sts
}
落地建议
- 在DNS配置TLSRPT并在 `mta-sts` 子域发布STS策略(HTTPS)。
- 采用 `mode=enforce` 前先以 `testing` 验证并监控报告,逐步切换。
验证清单
- TLSRPT TXT是否格式正确;STS策略是否包含正确字段与合法值,端点是否可访问。

发表评论 取消回复