# 加密端口配置优化 ## 需求确认 - SMTP 中继选择加密方式后自动填写端口,不要求用户记忆常用端口。 - 网页加密方式联动内置 HTTPS 开关和端口,反代模式继续停用 Smail 自动证书签发与续期。 - 读取配置不覆盖自定义端口;SMTP 主动切换加密方式后填写推荐值,允许再次手动调整。 - 使用可视化表单,不新增 JSON 编辑入口,不修改当前业务数据库或邮件数据。 - 重新编译并运行项目,确认实际运行的是更新后的前端。 ## 任务状态 - [✓] 检查当前分支、工作区与运行状态,提交并推送修改前检查点。 - [✓] 完成 SMTP 加密方式与推荐端口联动。 - [✓] 完成网页访问方式与 HTTPS 端口联动。 - [✓] 提供推荐值说明和一键恢复入口,保留手动输入。 - [✓] 63 项前端测试,以及配置、验证邮件、HTTP 服务三个后端包测试通过。 - [✓] 前端和后端构建完成,普通权限启动成功,浏览器实际操作验收通过。 ## 配置规则 | 配置方式 | 推荐端口 | 行为 | | --- | --- | --- | | SMTP STARTTLS | 587 | 主动切换时自动填写 | | SMTP 隐式 TLS / TLS 兼容模式 | 465 | 主动切换时自动填写 | | SMTP 本机不加密 | 25 | 仅限回环地址;远程明文拒绝通过校验 | | 内置 HTTPS | 443 | 自动开启内置监听;缺少端口时补全,保留有效的自定义端口 | | 内置模式 HTTP | 80 | 缺少端口时补全 | | 反代模式 HTTP | 8080 | 缺少端口时补全;已有监听端口不强制修改,HTTPS 端口归零 | 一键使用推荐端口只修改当前草稿,仍需完成校验、保存候选与应用流程。它不会立即重启服务,也不会更改反代服务器的配置。 邮件服务端口与 SMTP 中继端口不是同一组设置。本次不把收信端口 25 替换为客户端提交端口 465/587,也不把已有固定 TLS 监听伪装成可切换的加密模式。 ## 验收范围 自动测试在 `test-log/` 下的独立空目录运行,不连接实际业务数据库。开发服务沿用根目录 `config/` 下的现有运行配置。本次不执行清空真实账号、邮件、凭据或密钥的操作,不将表单交互验收等同于外部邮件投递或生产反代验收。 ## 验收记录 - 前端测试:`node test/run.mjs frontend`,63 项通过。 - 后端定向回归:`node test/run.mjs backend -count=1 ./config ./services/verification ./listen/http_server`,三个包通过。 - 构建:`powershell -NoProfile -ExecutionPolicy Bypass -File deploy/build.ps1`。 - 浏览器确认内置 HTTPS 自动补全、反代字段切换、四种 SMTP 选项的端口联动、自定义输入、恢复推荐值、远程明文错误提示。 - 重启后刷新保持登录;浏览器控制台无错误或警告,候选配置为空,当前配置未被测试草稿覆盖。 - 测试日志和交互记录位于 `test-log/`。本次未运行完整后端全量回归、真实邮件投递或生产反代端到端验收。 - 构建仍有部分资源包超过 500 kB 的体积警告,不影响构建成功;未将其描述为已消除。