退信核查记住扫描位置:UID 游标续扫,不再每次从头拉全量头部
- broadcast_bounces_seen.json 扩展为 {seen, cursor}(兼容旧列表格式):
cursor 记录 INBOX 的 uidvalidity + last_uid
- 下次 --check-bounces 默认 UID n+1:* 续扫,只查新到的邮件;随邮箱
邮件增多不再越扫越慢
- 回退全扫的情形:首次核查(无记录)、UIDVALIDITY 变化(换号/重建邮箱)、
显式 --since、新增 --full-scan
- 扫描循环统一走 UID 检索/取信;UID n:* 在 n 超过邮箱最大 UID 时会返回
最后一封,已防御过滤,游标不回退、不误报
- 发送中巡检不推进扫描位置(not_before 会过滤历史邮件,推进会把未处理
的邮件标记成已扫导致漏报);位置只由 --check-bounces 推进
- 退信报告新增 scan_mode / scan_cursor 字段
This commit is contained in:
@@ -249,9 +249,17 @@ conf/app.ini 路径的解析优先级:
|
||||
- 用的是 conf/app.ini [mail] 的账号与密码(需邮箱已开启 IMAP,密码为邮箱登录密码)
|
||||
- 交互模式的运行方式「4) 退信核查」里同样三选一:仅核查 / 仅剔除 / 剔除并补发,
|
||||
选择「仅剔除 / 剔除并补发」时会再问一次是否连未分类的一起补发
|
||||
- 已核查过的退信(按 Message-ID)记录在 broadcast_bounces_seen.json,
|
||||
重复核查不会重复报告/重复剔除
|
||||
- 每次核查另写一份明细报告 broadcast_bounce_report.json(含每个收件人的类别与判定依据)
|
||||
- 已核查过的退信(按 Message-ID)与**上次扫描位置**(INBOX UID 游标 +
|
||||
UIDVALIDITY)都记录在 broadcast_bounces_seen.json:
|
||||
默认从上次位置续扫(UID n+1:*),只拉新邮件的头部,重复核查不会
|
||||
重复报告/重复剔除,也不会随邮箱邮件增多越扫越慢
|
||||
- 以下情况自动回退为按日期窗口从头扫(扫完位置照常更新):
|
||||
首次核查(无位置记录)、邮箱 UIDVALIDITY 变化(换号/重建邮箱)、
|
||||
显式指定 --since、加 --full-scan
|
||||
- 发送中巡检不推进扫描位置(它只看本次运行之后新到的退信,
|
||||
范围内的历史邮件不标记「已扫」),位置只由 --check-bounces 推进
|
||||
- 每次核查另写一份明细报告 broadcast_bounce_report.json(含每个收件人的
|
||||
类别与判定依据,以及 scan_mode / scan_cursor)
|
||||
|
||||
安全机制
|
||||
--------
|
||||
|
||||
Reference in New Issue
Block a user