mail-send-failure

20260916-201504 轮 · 看它的历史
靶子 容器=wt_h8_tp8(端口 20098)

=== T0 · 前置:投毒生效(不生效的话下面每一条都在验"发信成功",方向正好相反) ===
  PASS  smtp_host 已被临时改成 127.0.0.1

=== T1 · 换绑链(登录后):发信失败必须据实报错 ===
  PASS  响应 info==0(不再无条件 success)
  PASS  文案是「验证码发送失败…」
  PASS  没发出去就不写验证码缓存(不给用户一枚永远等不到的码)

=== T2 · 🔴 _send_mail 自己留下了观察点 ===
  PASS  jnc_log 多了「_send_mail 发信失败」行(0 → 1)
  PASS  日志内容是发信失败(且是本次运行新产生的行)
  PASS  记了收件**域名**(排障要的那半)
  PASS  🔴 没记收件人本地部分(PII 不进 jnc_log)

=== T5 · 🔴 守卫:找回密码链**仍然**回统一文案(刻意的不对称,别改齐) ===
  PASS  匿名链响应仍是 info==1 的统一文案
  PASS  T5 前置:取得到服务端那句统一文案(取不到的话下面这条会恒真)
  PASS  🔴 没有把发信失败告诉匿名调用方,回的就是那句统一文案(否则开一条枚举通道)
  PASS  但运维侧照样看得到:jnc_log 又多一行(1 → 2)

=== T7 · 还原 ===
  PASS  smtp_host 已从库里重载回真值

=== T6/T8 · 守卫:还原后两条链都能正常发出(防把发信改成恒失败) ===
  PASS  换绑链恢复正常(真发 1 封)
  PASS  找回密码链恢复正常(真发 1 封)

PASS 15  FAIL 0