记录三个外部邮箱验证码云端投递与待验证状态
Some checks are pending
Security Checks / security (push) Waiting to run

This commit is contained in:
smail 2026-09-20 07:27:01 +08:00
parent 30747e9142
commit 88b80306be

View File

@ -4,17 +4,18 @@
## 结论与任务状态
已完成全项目自动化测试、发现问题的修复、Linux 构建和云端部署,并完成核心账号安全、公网邮件协议和浏览器网页收发实机验证。接续补齐了内置 AliDNS 挑战、生产续期入口和 Nginx 自动换证同步,包含这些修改的源码重新完成 66 包云端全量。公网收发发现的 IMAP Message-ID 搜索遗漏已修复,受影响包和部署后闭环通过。网页实测发现邮件读取失败仍显示空模板,已修复并部署,前端 206 项及云端页面回归通过。当前没有未解决的自动化测试失败;指定外部邮箱收件、自然到期长期调度等仍未验收,不能宣布整个项目最终验收通过。
已完成全项目自动化测试、发现问题的修复、Linux 构建和云端部署,并完成核心账号安全、公网邮件协议和浏览器网页收发实机验证。接续补齐了内置 AliDNS 挑战、生产续期入口和 Nginx 自动换证同步,包含这些修改的源码重新完成 66 包云端全量。公网收发发现的 IMAP Message-ID 搜索遗漏已修复,受影响包和部署后闭环通过。网页实测发现邮件读取失败仍显示空模板,已修复并部署,前端 206 项及云端页面回归通过。三个指定 163 邮箱的验证码已完成真实发送,对端接收记录均为 accepted,仍须邮箱持有人确认收件并完成绑定。当前没有未解决的自动化测试失败;外部邮箱最终收件、自然到期长期调度等仍未验收,不能宣布整个项目最终验收通过。
- [✓] 已按授权备份、清理 Smail 相关环境,重新初始化测试数据库。接续测试复用本轮数据库,没有重复清库。
- [✓] 修复测试发现的问题,相关包完成复测;最新程序已部署,云端和本地摘要一致。
- [✓] 含续期及配置校验修复的源码 `88649c8` 完成独立 Linux 后端全量,66 包成功、1971 个 PASS 标记、0 FAIL、5 SKIP。后续 IMAP 搜索修改另行完成 list、IMAP 两包本地及云端回归和公网收发闭环;最新 `ff13d39` 只修改邮件详情前端及其测试,没有重新宣称后端全量。
- [✓] 三类账号登录、TOTP 选择、提醒行为、邮件验证码跨场景消费、密码重置和客户端凭据撤销完成相应实机验证。
- [✓] 项目部署包只包含三个程序与四个运行目录,没有加入 Python、部署或续期脚本。
- [✓] 本轮临时 TOTP、外部邮箱绑定均已停用,账号密码保持用户指定值。
- [✓] 前期测试的临时 TOTP、站内外部邮箱绑定均已停用,账号密码保持用户指定值;07:19 后申请的三个指定 163 邮箱仍为待验证状态。
- [✓] 实时 DNS 控制面、两个权威 DNS 和公共 DNS 均确认泛解析生效;邮件记录保留,DKIM 与运行密钥匹配。
- [✓] Web 及已启用邮件 TLS、STARTTLS 入口返回同一张覆盖根域名的泛域名证书。
- [!] 三个指定的 163 邮箱尚未完成真实收件和绑定验证。
- [✓] 三个指定的 163 邮箱验证码发送均取得对端接收记录,发送接口实测为 2.30—3.23 秒,没有出现 504。
- [!] 三个指定的 163 邮箱尚待持有人确认最终收件并完成绑定验证。
- [✓] 本机 Node 客户端通过公网域名完成 SMTP 认证发信、IMAP 按 Message-ID 查询及读取、POP3 读取同一邮件正文;三个入口均正常校验 TLS 信任链与域名。
- [✓] 真实浏览器完成写信、发送成功、发件及收件阅读、中文附件内容校验;跨账号访问拒绝、失败重试和返回列表通过。系统文件选择器受工具限制未验收,具体边界见末节。
- [✓] 内置 AliDNS 在真实 staging CA 完成根域名及泛域名挑战、签发、记录清理;生产续期入口成功,配置变化自动触发 Nginx 同步与平滑重载。
@ -158,7 +159,7 @@ DKIM 公钥 DER SHA-256:`df9958f7e8c20c7d7f8735bb062f7bd7485bbee3bbd254930d7ae
项目托管启用内置续期检查,手动及代理托管不触发 ACME,策略测试通过。04:45 后已补齐 AliDNS 自动管理 TXT 及 Nginx 自动同步,实测结果如下。尚未验证自然到期后的长期调度。服务器不依赖外部部署或续期脚本,没有新增外部 ACME 定时器。
指定的三个 163 地址尚未完成真实收件及绑定验证,本轮没有向这些外部收件箱发送测试邮件。后续需由各邮箱持有人接收真实验证码,再通过正式绑定流程完成验证。
截至本节早期检查,指定的三个 163 地址尚未发送测试邮件。07:19—07:23 已通过正式绑定流程分别发送一次验证码,详见末节;最终收件和绑定仍须由各邮箱持有人完成。
## 04:45—05:40 内置续期与换证补充验收
@ -319,3 +320,41 @@ smail/
- [✓] 最新前端回归、Linux 打包、备份部署、程序摘要与数据库核对。
- [✓] 恢复超级管理员登录及强制安全设置提示。
- [!] 三个外部邮箱真实收件和绑定、证书自然续期长期调度、Windows 提权 IPC、外部插件业务、系统文件选择器仍未纳入通过范围。
## 07:12—07:24 外部邮箱实际投递
本次接续沿用现有云端环境,未清库、重启、修改程序或网络规则。账号密码保持用户指定值,没有把验证码、邮件正文或会话凭据写入报告及证据。测试辅助操作没有进入发布包。
### 网络诊断与实际结果
当前 SMTP 中继的主机、账号和密码均未配置,验证码使用项目自身投递。首次配置探测将非空密码结构误判为已配置,随后按密文字段重新核对,实际未配置;保留两次原始证据,结论以字段核对为准。
163 的四个 MX 名称均解析成功,本次解析指向 `111.124.203.43`、`111.124.203.50`。四个主机的 25 端口探测以及两个 IP 的直接 25 端口探测均超时。QQ MX 的 25 端口也未连通;服务器 UFW 默认允许出站,当前 IPv4 filter OUTPUT 链未见拒绝规则。尚未定位限制发生的网络环节,不能仅据此断言云平台封禁。
`smtp.163.com` 的 465、587 端口连接成功。进一步探测 `163mx01.mxmail.netease.com` 和 `163mx03.mxmail.netease.com` 的 465 端口,默认 CA 与主机名校验通过,均使用 TLS 1.3,EHLO 返回 250。以上探测没有发送 DATA 邮件。现有投递实现支持 MX 的 25、465、587 备用路径,因此 25 端口超时不等于整条外发链路不可用;下述正式业务请求实际投递成功。
### 三类账号验证码发送
| 账号 | 指定邮箱 | 操作与耗时 | 云端结果 |
| --- | --- | --- | --- |
| `xuans` | `likb_blue@163.com` | 真实浏览器点击发送,最近认证要求先确认密码;重新认证 383 毫秒,之后绑定请求 3233 毫秒 | 验证事件 success,投递 accepted,绑定 ID 2 为 pending |
| `testadmin` | `xuanspark@163.com` | 公网正式 API 登录 437 毫秒,绑定发送 2299 毫秒 | 验证事件 success,投递 accepted,绑定 ID 3 为 pending |
| `testuser` | `gfxezc@163.com` | 等冷却后重新登录 583 毫秒,绑定发送 2308 毫秒 | 验证事件 success,投递 accepted,绑定 ID 5 为 pending |
三个成功绑定请求均 HTTP 200、业务码 0,并返回真实绑定和挑战信息。服务器分别在 07:19:12、07:21:43、07:22:59 记录系统安全验证邮件 accepted、acceptedCount 为 1,验证事件均为 issue/success。日志只记录发送元数据;accepted 表示对端服务器接收,不代表邮件已进入收件箱,更不代表持有人完成验证。
普通用户第一次在管理员发送后立即提交,99 毫秒返回业务码 100、“验证码发送过于频繁,请稍后再试”,对应事件为 blocked。源码确认同一来源的发送冷却为一分钟;等待超过一分钟后正式重试成功,没有清理限流状态或调整规则。失败请求创建的待验证记录由产品自身回滚,因此最终普通用户绑定 ID 为 5。这次是尚未使用验证码时的正常发送冷却,不是已完成业务后冷却没有释放;验证码消费后的跨场景释放已在前期闭环中验证。
管理员和普通用户的辅助 API 会话均已正式注销。超管浏览器保留在邮箱验证码输入步骤,显示脱敏地址及倒计时;07:23:31 页面 ping 为 139 毫秒、HTTP 200,无横向溢出。上述均为当次请求观测,不是负载测试或所有投递路径均小于五秒的保证。外部绑定仍同步等待投递,本次没有复现 504,也没有修改同步流程。
### 待人工收件与运行复核
三个指定邮箱均为 primary、pending,verified_at 为空。没有读取外部收件箱,没有伪造验证码或直接修改验证状态,超管的安全验证要求仍有效。下一步由邮箱持有人查看收件箱及垃圾邮件,通过正式页面输入验证码;过期后重新发送即可。管理员、普通用户需要重新进入各自账号的绑定窗口,使用原指定地址申请新验证码。
07:24:28 复核:Smail PID `725122`、Nginx PID `578671` 均 active,Smail 自动重启次数仍为 0,证书同步监听 active。两个数据库完整性均为 ok,三个程序摘要与发布收据一致,三类账号启用状态正确。本机恢复 socket 保持 `0600 smail:smail`。此次只有测试报告更新,没有新产品修改,也不重复宣称重新执行全量构建和回归。
本地证据目录为 `test-log/external-mail-20260920/`:`configuration-network-before.json`、`network-probes.json`、`network-differential.json`、`superadmin-delivery.json`、`other-accounts-delivery.json`、`testuser-delivery-retry.json`、`delivery-metadata-before-retry.json`、`final-server-evidence.json`、`browser-evidence.json`。早期邮件日志查询按字符串 ID 排序未取到最新记录,最终证据按 created_at 排序核对三条新投递,不以早期查询缺少记录判定投递失败。
- [✓] 三个指定外部地址各一次实际验证码投递,对端接收及失败冷却重试证据齐全。
- [✓] 最终数据库、程序摘要、服务状态及本机恢复边界核对。
- [!] 外部邮箱最终入箱和持有人验证码验证尚未完成;其余长期调度、Windows 提权 IPC、外部插件及系统文件选择器边界保持不变。