Files
tamabox-broadcast-mailsystem/params.ini
T
tamakyi 1407fa9fb6 发信账号来源开关:app.ini / 程序自带 SMTP
- params.ini 新增 [mail]:source=app(默认,用 conf/app.ini [mail])或
  own(用 account/password/smtp/port/skip_tls_verify 这套);--mail-source
  app|own 可临时覆盖(命令行 > params.ini)
- 切换后发信与退信核查(IMAP,含主机推导)都走这套账号;切换到 own 但
  配置缺项时直接 FATAL,不用半套配置
- password 支持 env:变量名:params.ini 会被 git 跟踪,明文密码时打印警告
- 交互模式:[mail] 配齐时多问一次来源;保存时 [mail] 小节原样回写
- 修复:save_params 缺少 batch_size/smtp_idle_reconnect 形参,但调用点已在
  传 → 交互模式选「保存到 params.ini」会 TypeError 崩溃(上一并行编辑漏改)
- 补回上一轮被漏掉的 README「合并信封批量发送」章节与 452 安全机制条目
2026-09-08 00:23:51 +08:00

74 lines
3.0 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
; SMTP 连接空闲超过该秒数就主动重连再发。
; delay 调大时(比如 60s/封)服务器会掐掉空闲连接,出现整批
; 「please run connect() first」;保持默认 30 即可自动重连,设 0 关闭
smtp_idle_reconnect = 30
; 合并信封批量发送(0=逐封)。渲染内容完全相同的收件人每 N 人共用一个
; SMTP 信封:发送次数从「人数」降到「信封数」(如 305 人、每 50 人一封
; → 约 7 次发信),可显著降低触发「外发频率超过邮件系统限制」类限流的
; 概率;若服务商按收件人计数则无缓解。
; 注意:单封收件人有服务商上限(常见 50~100),超限被 452 拒收时脚本会
; 自动砍半拆批重试,不会中止;delay 在批量模式下的语义是「每批之间」间隔。
; 模板含 {{name}} 等个人化占位符时内容逐人不同,自动回退逐封,不会错合。
batch_size = 0
; 发信账号来源:app = 用 conf/app.ini [mail] 的 SMTP(默认,站内信跟随站点邮箱)
; own = 用下面这套程序自带 SMTP(命令行 --mail-source own 可临时覆盖)
; 切到 own 后,发信与退信核查(IMAP)都走这套账号
[mail]
source = app
account =
; password 支持 env:变量名(推荐),避免明文写进会被 git 跟踪的文件
password =
smtp =
port = 465
skip_tls_verify = 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