4.1 KiB
业务约束
邮件渠道
- 验证码、登录链接、工单回应邮件通知优先 Resend;工单通知须有有效用户邮箱。额度耗尽或明确无法使用时走常规邮箱。
- 其他通知、人工群发与来信自动回复使用常规邮箱;收件通过该邮箱 IMAP。不能把“Resend 支持收件 API”理解成已有 IMAP 邮箱。
- 额度采用官方用量查询与本地预占;当前查询缓存 15 秒,并非每封都查。日/月限制有免费档保护,默认 100/3000,以实际配置及官方结果为准。
- 发送超时属于结果未知,不直接跨渠道重复发。已提交是接口/SMTP 接受;Resend 已投递需投递事件或状态核对,不等于已读。普通 SMTP 不能假装具有投递回执。
- 回调必须通过签名和事件去重。回调密钥可选是允许仅用状态核对,并非允许无签名回调。
- 来信加密保存;普通来信不要求网站绑定邮箱。按发件地址北京时间每自然日只自动回复一次。同一来信不再次回复。过滤退信、自身、自动与列表邮件,防止循环;限制不能阻止攻击者换邮箱。
- 日报北京时间每天 08:00,通过 master 当前默认会话;默认目的地及发送授权已经由用户确认,但任何后续目的地/授权变化仍需核对。真实发送和定时调度分别验收。
自动邮件三档
| 档位 | 提醒类自动邮件 | 实际套餐到期通知 |
|---|---|---|
| 一档 | 原有逻辑 | 按现有用途与用户设置判断,不扩大旧行为 |
| 二档 | 关闭流量及到期前提醒等 | 仅允许启用二档之后新到期的用户,不补历史到期 |
| 三档 | 关闭 | 关闭 |
管理员人工群发、验证与登录邮件、工单回应通知、来信自动回复始终不受档位影响。到期通知只有后台允许且用户未关闭提醒才发;任一方关闭均不发。改档要核对排队任务发送时的再次判断,恢复档位不补发已取消任务。
品牌与后台
邮件发件名称使用 app_name,正文 Logo 与名称并排、保持协调的小间距;页脚链接是网站正式主页,不能使用 deeplink-system.com 发信服务域名代替主页。收件箱头像由邮箱客户端决定,正文 Logo 不能强制控制它。
后台管理员权限必须在账号数据与实际登录中验证。路径变更需同时验证 HTML、资源加载和登录仪表盘;不能仅依靠 200 响应。密码、SMTP/IMAP/API 凭据不得写进维护指南、Git 提交或截图。
支付与授权边界
支付优先复用已有配置;涉及支付代码修改需按此前用户边界先确认具体改动。2026-10-11 用户已授权补齐 EPay 支付状态、订单金额及关联信息校验,随后指定支付对接仅在线上联调,不调整本地支付配置。空中支付已有商户设置尽量保留,需要新增的设置可添加。不得把邮件发布顺便混入支付变更,也不得未经授权执行真实付款。
常规已授权的修复、验证、文档与 Git 发布继续推进;涉及删除不可恢复数据、变更账号权限范围、新的外部数据传输目的地等敏感边界需要明确授权。已有授权不用重复询问。备份、脱敏与隔离数据不自动等于完成真实业务验收。
EPay 按空中支付 V1 文档签名(忽略 sign、sign_type 和空值,参数不进行 URL 编码)。回调须验证签名、成功状态、商户、指定支付类型、订单所属渠道及实付金额(订单金额加手续费),取消订单或冲突交易号不能开通;相同成功回调保留现有订单幂等处理。
管理员汇报渠道
用户于 2026-10-11 明确要求:工单与网站运行等管理员汇报不发送到管理员邮箱。当前此类管理员通知使用 Telegram;如存在或新增管理员邮件汇报,必须保留实现,通过独立开关控制,默认关闭,不通过删除代码实现关闭。工单回应邮件的收件人是提交工单的用户,不是管理员。管理员作为网站用户主动请求的验证码、登录邮件及原有用户业务邮件不因角色被一概拦截;人工群发规则继续按既有明确授权执行。