Files
tamabox-broadcast-mailsystem/params.ini
T
tamakyi f83ea3e29a 退信/巡检开关移入 params.ini [bounce],命令行仅作临时覆盖
原来这些开关只能靠命令行传,每次群发都得敲一长串,也容易漏。现在统一在
params.ini 的 [bounce] 小节长期配置,优先级为 命令行 > params.ini > 内置默认。

改动:
- load_params 新增 [bounce] 解析:watch_bounces / watch_every / prune_unknown /
  no_invalid_list / invalid_file / bounce_report / imap_host / imap_port /
  since / since_days;新增 _parse_bool 支持 1/0、yes/no、true/false、on/off,
  留空或非法值忽略并回退默认(带警告)
- 相关 argparse 默认值改为 None,以便区分「用户显式传了」还是「没传」——
  没传才用 params.ini 的值,保证命令行优先级
- save_params 回写 [bounce](用当前生效值),并用 _preserve_extra_sections
  原样保留文件里其它手写小节,避免保存时把配置抹掉
- 交互模式参数摘要里显示巡检开关的当前值与来源
- 把 argparse 构造抽成 build_arg_parser(),便于测试
- params.ini 补上 [bounce] 小节的默认配置与注释;README 同步
2026-09-07 19:25:20 +08:00

49 lines
1.6 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
; broadcast.py 参数文件:每次运行自动读取;命令行参数优先级更高
; 注意:本文件不控制 --send/--yes,正式发送仍需命令行显式指定
[path]
; conf/app.ini 路径(相对路径按运行脚本时的当前目录解析)
config = ../auto/conf/app.ini
[site]
site_url = https://box.shiroko.one
box_prefix = /_/
; 自定义占位符:模板里用 {{键名}} 引用
[vars]
expire_date = 2026-12-24
old_domain = box.tama.guru
[send]
; to = 可选:默认测试收件邮箱(正式群发用命令行 --send,不加 --to
delay = 1.0
group_pause = 3.0
; 退信核查 / 发送中限流巡检开关
; 这些都能在 params.ini 里长期配置,命令行同名参数可临时覆盖
[bounce]
; 发送中巡检收件箱:出现「外发频率超过邮件系统限制」类限流退信立即中止发送
; 中止后会把限流地址从断点清单剔除,等限制恢复重跑即自动补发
watch_bounces = 1
; 每发 N 封巡检一次退信。调小更及时,但 IMAP 登录更频繁(不建议 < 5)
watch_every = 10
; 退信核查时,分类不明的退信是否也按「可重试」一并剔除补发(默认 0,保守不补发)
prune_unknown = 0
; 停用无效地址清单:既不跳过已知无效地址,也不写入新的硬退信
no_invalid_list = 0
; 留空则用脚本同目录的默认文件名
invalid_file =
bounce_report =
; IMAP(退信核查要用发件邮箱的 IMAP;留空则按 SMTP 域名推导 smtp.xxx → imap.xxx
imap_host =
imap_port = 993
; since = auto 表示从断点清单最早一条发送记录的时间开始扫描,只查本次群发的退信
since = auto
since_days = 3