From f561a51662dccbc7b35745fa91974848fc3484b7 Mon Sep 17 00:00:00 2001 From: smail Date: Wed, 16 Sep 2026 21:07:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E9=82=AE=E4=BB=B6=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E4=B8=8E=E5=8A=A0=E5=AF=86=E5=8D=8F=E8=AE=AE=E8=BF=9C?= =?UTF-8?q?=E7=A8=8B=E5=9B=9E=E5=BD=92=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/远程服务器测试记录.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/docs/远程服务器测试记录.md b/docs/远程服务器测试记录.md index 0cd577f..5f7c58f 100644 --- a/docs/远程服务器测试记录.md +++ b/docs/远程服务器测试记录.md @@ -18,7 +18,9 @@ - [✓] 配置、安装及管理员恢复相关 Linux 测试包在远程执行通过。 - [✓] 恢复 socket 为 `smail:smail 0600`;非授权服务账号直接运行恢复工具被拒绝。 - [!] 邮件实际投递未通过:网络连接与证书信任阻塞,未绕过校验。 -- [!] 异步发信尚未完成时会提前显示成功,需完善待投递状态及页面刷新策略。 +- [✓] 修复异步发信提前显示成功:网页提交显示正在投递,列表先显示待投递,手动刷新后显示实际失败。 +- [✓] 修复 587 端口误用隐式 TLS,远程 STARTTLS 已进入证书校验阶段。 +- [!] 当前仍使用原有定时与手动刷新机制;快速状态轮询、进程中断后的待投递恢复未验收。 - [!] 正式 `systemctl start smail-admin` 密码代理交互、新密码登录及旧会话失效闭环未完成。 - [!] 外部邮箱验证码恢复未完成,需要确定实际可接收验证码的测试邮箱。 - [!] 受信任 TLS、移动端及全部业务模块验收未完成。 @@ -29,12 +31,14 @@ `b93ea9d` 修复收件人回车选择并统一主界面组件中文。地址选择器启用默认候选,主应用通过组件配置提供中文语言。 -两次清库安装后,最后一次前端修复采用备份后保留数据库的升级部署,用于验证会话和配置保持,不宣称该版本又进行了一轮全新清库安装。 +`49ab24b` 修复异步邮件投递状态与 587 端口加密协议。邮件与用户关联先以既有待投递状态入库;列表接口返回真实状态,页面不再将错误文本为空当作成功;587 使用 STARTTLS,保留证书校验及禁止明文回退的边界。 + +两次清库安装后,前端修复及邮件状态修复均采用备份后保留数据库的升级部署,用于同轮故障回归和验证会话、配置保持,不宣称这些版本又进行了一轮全新清库安装。 最终 Smail 二进制 SHA-256: ```text -7537c3fdd534a93b5d9db46340b1629abd2f03b1dbe4602300ecc71ee26c61bb +20a0d08dd9f2c2b6bb60e7c1e36f9c09b571c0c32f35d787d06cbe5792c6a214 ``` 远程服务在部署后保持 active,HTTP 80、HTTPS 443 正常监听。`config.json`、`email.json`、`plugins.json`、`smtp.json`、`ssl.json` 均为 `smail:smail 0600`。 @@ -49,6 +53,10 @@ 发件箱手动刷新后显示发送失败,说明最终错误已落库;最初成功提示来自异步投递前的状态,不能作为投递成功依据。 +21:05 对 `49ab24b` 进行真实网页回归:向同一测试用户提交“投递状态远程回归 2104”,页面提示“邮件已提交,正在投递”,发件箱立即显示“待投递”。21:05:32 日志记录 25 端口超时后,587 STARTTLS 因证书不受信任终止,不再出现原来的 TLS 协议错误。21:06 手动刷新后,列表仅显示“发送失败”,无横向溢出。没有宣称自动刷新时效已经通过验证。 + +从 47 服务器执行 `openssl s_client -starttls smtp -connect mail.solit.cn:587 -servername mail.solit.cn -verify_return_error -brief`,已进入证书验证并返回 `self-signed certificate`,未关闭证书校验、未发送邮件内容。 + 原证书仅覆盖 `*.solit.cn`,安装校验因不覆盖主域名 `solit.cn` 而拒绝。测试改用服务器已有的 `custom.crt`、`custom.key`,覆盖主域名和通配域名,但属于自签名证书。当前公网服务仍使用该测试证书,浏览器提示证书不受信任。需要提供覆盖所需域名的受信任证书,不能将本轮功能检查当作生产 TLS 验收。 安装向导公网 IP 检测未成功;远程访问 `api.ipify.org:443` 失败,未修改外部 DNS,也未使用网页 DNS 解析结果冒充探测结果。 @@ -57,6 +65,7 @@ - `setup.test`、`config.test` 在远程以 `smail` 身份执行通过。 - `adminreset.test` 在远程以 `smail` 身份执行全部通过,覆盖调用身份、一次性挑战、防重放、过期、socket 权限、重置事务与凭据撤销。 +- `email.test`、`send.test`、`smtp.test` 在远程以 `smail` 身份执行全部通过,新增实际持久化函数待投递状态、关联写入失败回滚、列表接口三种状态回归。测试使用隔离内存数据库,不写部署业务库。 - 配置测试曾因从 `/root` 继承工作目录而失败,改在服务账号可访问的测试目录执行后通过,没有放宽权限。 - 前端生产构建与 Linux Go 编译通过;构建有编辑器块超过 500 kB 的提示。 - 本次没有重新执行全部后端包、竞态测试或前端自动测试,不能沿用此前本机全量测试作为远程全量结论。 @@ -70,13 +79,14 @@ - `/var/backups/smail-before-reset-20260916-201834`:第一轮清库前备份。 - `/var/backups/smail-before-reset-20260916-202943`:第二轮清库前备份。 - `/var/backups/smail-before-reset-20260916-205033`:前端修复升级前备份,本次未执行清库。 +- `/var/backups/smail-before-reset-20260916-210318`:邮件状态及 STARTTLS 修复升级前备份,本次未执行清库。 备份均对完整归档进行比较与 SHA 校验。两份数据库 inode 保持为 `smail.db=915735`、`smail-state.db=915727`。旧配置及迁移源已归档,没有删除其他项目文件,没有操作同机 Scert、MySQL 或 PostgreSQL 数据。 最新备份归档 SHA-256: ```text -f335099ca48fc2d224d31e949123f97b6ff0a00ee4b69b20bb2990a021d15bc4 +27a81af2b52946f1988173eecfb290e505ceca50de3634ef3d77013a1f1279dd ``` 测试用户与失败邮件保留用于后续复核,密码、密钥及会话凭据不写入记录。