修复发信账号来源选了 own 却仍用 app.ini 发送

复现确认的三处缺陷(用户报:params 配了 own、启动时选 own,实际仍用 app 发):
1. 交互提示只认字面量 own:UI 其它选项都是 1/2/3/4,输入 2 会静默回落 app
2. 交互默认硬编码 app,忽略 params.ini 已配的 source=own → 直接回车也回落 app
3. 连锁:本轮选完若保存 params.ini,会把 source 写成 app 落盘,之后一直生效
   (这正是「填错信息报 426 → 改好后能跑但走 app 邮箱」的原因)

修复:
- 交互改为 1/2 数字选型(仍兼容 app/own 字面量),默认取 params.ini 的 source
- main 提供 _mail_source_default = params.ini [mail] source
- 保存时仅当本轮交互显式选过才写回 source,命令行临时 --mail-source 不落盘
- 发信前额外打印一行生效账号与来源,避免被忽略

回归:选 1→app、选 2→own、回车沿用 own、own 字面量兼容、保存后 source 正确、
未显式选时保留文件值,共 7 项断言
This commit is contained in:
tamakyi
2026-09-08 01:18:40 +08:00
parent 1407fa9fb6
commit 35e9a7231a
2 changed files with 27 additions and 10 deletions
+3 -1
View File
@@ -275,7 +275,9 @@ conf/app.ini 路径的解析优先级:
skip_tls_verify = 0
临时切换(优先级高于 params.ini):`--mail-source own` / `--mail-source app`
交互模式里若 [mail] 配齐了,会多问一次选哪个来源。
交互模式里若 [mail] 配齐了,会多问一次(`1` = app.ini,`2` = 程序自带;
默认值取 params.ini 已配置的 source,直接回车即沿用)。
只有交互里显式选过才会写回 params.ini;命令行临时切换不会被保存成永久配置。
安全提醒:
- params.ini 会被 git 跟踪,**不要把密码明文写进去**;用 `env:变量名`