# ============================================================================
# 向 DMARC 报告服务商申请外部域授权（EDV）时的邮件模板
#
# 什么时候用：
#   你的 DMARC 记录里 rua= 指向一个不是你组织域的地址（报告服务商、代运营方、
#   或者集团里另一个法人主体的域）。这种情况下接收方会先查一条授权记录，
#   查不到就**静默丢弃报告** —— 不退回、不报错、没有任何日志。
#
# 你要做的两件事：
#   ① 在**你自己的域**下加一条 TXT 记录（授权对方接收你的报告）
#   ② 把这条记录的存在告诉对方，让他去核对（多数服务商会在后台验证）
#
# 记录名方向是这件事最容易搞反的地方，见下面的「记录写在哪里」。
# ============================================================================


# ============================================================================
# 第一步：你要加的那条记录
# ============================================================================
#
# 格式：<发布策略的域>._report._dmarc.<接收报告的域>
#
# 假设：你的域是 your.com，报告发到 reports@dmarc-service.example
#
#   记录名：your.com._report._dmarc.dmarc-service.example
#   类型：  TXT
#   值：    v=DMARC1
#   TTL：   300（这条记录不会变，稳定后可以调高）
#
# ❌ 三个常见错误：
#   dmarc-service.example._report._dmarc.your.com     ← 两个域反了
#   _report._dmarc.your.com                            ← 少了对方的域段
#   _dmarc.your.com._report._dmarc.dmarc-service.example ← 前面不该有 _dmarc
#
# 用 Google 的报告服务验证你理解的方向对不对：
#   dig +short TXT gmail.com._report._dmarc.google.com    → "v=DMARC1"   ✅
#   dig +short TXT _report._dmarc.google.com              → 空（nodata）  ❌
#
# 如果对方只发通配（Google、Agari 都是），那他自己那条通配就够了，
# 你**不需要**单独加上面这条。先查一下：
#   dig +short TXT '*._report._dmarc.dmarc-service.example'
# 有 "v=DMARC1" → 不需要你配，报告能通。


# ============================================================================
# 第二步：发给对方的邮件（把 [方括号] 里的内容换成你的）
# ============================================================================

主题：DMARC 聚合报告授权确认请求 — [your.com]

正文：

你好，

我们计划把 [your.com] 的 DMARC 聚合报告发送到贵方的报告邮箱
[reports@dmarc-service.example]，需要确认外部域授权（External Destination
Verification）这一环已经生效。

我们这边已发布以下记录：

    名称： [your.com._report._dmarc.dmarc-service.example]
    类型： TXT
    值：   v=DMARC1

我们的 DMARC 记录如下（供核对）：

    _dmarc.[your.com]  TXT  "v=DMARC1; p=[none]; rua=mailto:[reports@dmarc-service.example]"

想确认三点：

1. 贵方是否需要在后台把这台报告地址登记为 [your.com] 的收件方？
   如需，请告知流程。
2. 贵方是否发布了 *._report._dmarc.[dmarc-service.example] 通配授权？
   如果有，我们上面那条记录可能不是必需的，请告知以便我们清理。
3. 报告会发到哪个地址、每天几封、有没有可查的收件确认面板？

如果这条链路配置上有任何问题，麻烦告诉我们缺什么。原因是：
这条链路失败时**不会有任何报错**，我们只会在邮箱里什么都收不到，
而不会收到「授权失败」的提示 —— 所以我们宁可多确认一次。

谢谢。

[你的名字]
[你的职位] / [公司]


# ============================================================================
# 第三步：怎么确认链路真的活着
# ============================================================================
#
# 唯一可靠的办法是**收到一份真实报告**。所以：
#
# 1. 配好 rua 之后，什么都不改，等 24~48 小时
# 2. 收到第一份 .xml / .xml.gz / .zip 附件后，先跑一遍：
#      python scripts/dmarc_report.py --file <那个附件> --domain your.com
#    能看到「发布策略」和「按源 IP」两段，就说明整条链路通了
# 3. **确认通了之后**再决定要不要把 p= 从 none 收紧
#
# 反过来做（先收紧再确认报告）的风险：
# 你上 p=reject 之后收不到任何报告，出问题只能靠客户投诉发现 ——
# 而客户投诉通常比问题晚三天到两周。
#
# 常见「收了但看起来不对」的情况：
#   · 报告的 <count> 是接收方自报的信封数，不是你的发送量，几种报告不能相加
#   · 只有配了 rua 的接收方才发报告，所以总量永远小于真实发送量
#   · 报告里的 disposition=none 意味着那封信**已经投递了**，不是「被拦了」
