diff <(curl -s 'localhost:8000/preview?id=123') \
     <(python dump_sent_mail.py --last 1)
# 只允许动态字段不同

运营在后台点预览看到完整的品牌抬头和优惠区,实际发出后抬头整块不见了,最近一周的营销邮件都这样。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:预览接口喂的是固定的样例 JSON,字段最全,真实订单缺少某个可选字段时模板走了条件分支把整块跳过。两套数据源不一致,预览就没起到校验作用。

这次卡住的地方就在「邮件模板预览不一致」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

处理上按这个顺序:预览改成可以选一笔真实订单,用与生产同构的数据渲染;模板里的条件分支加兜底,字段缺失时显示占位文案而不是整块隐藏;对比预览 HTML 和实发 HTML 的字节数,差得多的先看条件分支。

确认没问题再收工,用真实订单预览和实发内容一致,只剩时间戳和收件人不同。

作者 9823189