Skip to content

fix(admin): preserve saved SMTP TLS mode in test endpoints - #6357

Merged
Wei-Shaw merged 1 commit into
Wei-Shaw:mainfrom
wucm667:fix/issue-6354-smtp-tls-fallback
Aug 29, 2026
Merged

fix(admin): preserve saved SMTP TLS mode in test endpoints#6357
Wei-Shaw merged 1 commit into
Wei-Shaw:mainfrom
wucm667:fix/issue-6354-smtp-tls-fallback

Conversation

@wucm667

@wucm667 wucm667 commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

问题

POST /api/v1/admin/settings/test-smtp 在请求未携带 smtp_use_tls 时,会把零值 false 当作显式配置,覆盖已保存的隐式 TLS 设置。保存为 465 + TLS 的配置因此走错明文/STARTTLS 路径并可能超时。相同的遗漏语义也存在于 send-test-email

根因

两个请求结构都使用普通 bool,JSON 绑定后无法区分“字段未提供”和“显式 false”;处理器虽然会回填其他 SMTP 字段,却直接使用该布尔零值。

改动

  • 将两个测试邮件请求中的 smtp_use_tls 改为可选布尔值。
  • 字段未提供时继承已保存的 UseTLS;显式 truefalse 仍以请求为准。
  • 增加聚焦回归测试,覆盖省略、显式关闭和显式开启语义。

验证

  • 已验证:后端完整单元测试通过。
  • 已验证:后端完整集成测试通过。
  • 已验证:Go 静态检查报告 0 个问题。
  • 已验证:前端代码检查、类型检查及关键测试通过(167 项)。
  • 已验证:后端漏洞扫描发现 0 个已调用漏洞。
  • 已验证:Linux 兼容的部署检查通过。
  • 当前主机为 Linux,因此未运行仅适用于 macOS 的容器生命周期测试。

重复/重叠检查:提交前未发现引用 #6354 或修复 test-smtp 的 smtp_use_tls 省略语义的开放 PR。

Fixes #6354

@Wei-Shaw
Wei-Shaw merged commit c31fe2e into Wei-Shaw:main Aug 29, 2026
8 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 29, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(admin): test-smtp endpoint ignores saved smtp_use_tls — plaintext dial to implicit-TLS port 465, misleading timeout

2 participants