Repository navigation
iCloud Mail v0.2.3 · 退役核验与收件并行修复
iCloud Mail v0.2.3:退役核验、收件并行与接口文档同步。
修复与调整
- 同主号 Apple 管理与 IMAP 读取使用独立执行锁,退役和收件的网络阶段可并行;两类操作各自保持主号串行及既有全局并发预算。
- 归档提交逐项核验邮箱身份与启停修订,退役、删除或停用一个邮箱只过滤其关联,其他邮箱的有效邮件仍与 UID 游标事务提交。新加入但未参与当前读取的邮箱不误标同步成功。
- 账户密码、服务器、用户名、主号启停及收件通道变更使旧观察失效,切换后切回仍可识别。旧连接失败不会覆盖新配置的同步状态;最近访问、备注、分组、凭据轮换及主号名称更新不会误丢邮件。
- 新增
alias_receive_revisions持久化启停修订,SQLite 与 PostgreSQL 迁移一致、幂等;旧邮箱默认修订 0,无需回填。 - 修复原退役工单与收件本地收口的并发冲突。Pool 进入 retiring 后继续关闭取码、续期、释放与再次领取;原管理批量删除合同保持。
- 原工单新增显式 reconcile:
resume=false只核验完整权威目录,可靠确认已不存在的原目标可事务收口;resume=true明确允许继续删除目录中仍存在的原目标。临时目录缺失或未知结果保持 review,不盲目重放。 - reconcile 延续管理员 Session、POST CSRF 与项目 Pool Key 双鉴权,核验完整原顺序 alias/lease 绑定。相同在途动作返回当前快照,不同动作返回
RETIREMENT_ACTION_CONFLICT,不生成无归属的新工单。 - 补充仅供离线运维的原退役快照据证恢复能力,无公开 HTTP 入口;保留 lease 历史并核验原始归属。
- 旧 recent 的上游已读回写继续固定来源并使用管理锁,等待该锁时不占 IMAP 执行名额;普通 OTP / Pool 收件不受此锁限制。
文档与验证
- 重写服务内置
/docs/,同步直接 OTP、严格同域 root+tag、Pool、退役与 reconcile、2 秒取件预算、IMAPS / OAuth 和并行边界。页面样式内置,支持深浅模式,无外部脚本或字体。 - README、发布版本及离线编排同步为 v0.2.3;Docker 默认部署继续使用 GHCR 多架构
latest,保留固定版本镜像和离线包。 - HTTP、syncer、Store、隐藏邮箱同步与邮件解析受影响包测试、
go vet及重点 race 验证通过;隔离 PostgreSQL fixture 验证配置切换、启停修订、重开 Store 与幂等迁移。 - TLS IMAP 协议联测验证读取未结束时退役可完成,其他邮箱与其 +tag 邮件正常归档;完整 + 地址优先,未知根和不同域名跳过,retiring / retired 租约停止取码。额外回归验证旧来源冲突内容不覆盖当前归档。
- 已有取件链接只读实测两次 HTTP 200,均与数据库最新归档一致:首次约 6 秒,后续约 154 毫秒。这是单环境冷/热读取结果,不是新邮件投递时延承诺;本次并行联测使用离线 fixture。
升级前成组备份数据库、密钥、installation state 和邮件归档;保持单应用实例,保留 .env 与数据卷。未知退役结果先 GET 原工单,再按原 items 显式核验或恢复。
完整源码比较:v0.2.2...v0.2.3。
Docker 镜像与下载
- 默认部署:
ghcr.io/t508708/icloud-mail:latest与ghcr.io/t508708/icloud-mail-postgres:latest。 - 固定版本:两个镜像均提供
v0.2.3标签,支持linux/amd64、linux/arm64。 icloud-mail-v0.2.3-linux-amd64.zip:应用与 PostgreSQL 预构建镜像、部署配置及源码,附RELEASE.json与包内校验。icloud-mail-v0.2.3-source.zip:源码包;SHA256SUMS:下载校验文件。- 本版镜像由发布提交
0e2755156557d9255da343edc35610ef48c90020的干净 GitHub Actions checkout 构建,未包含本机未提交改动或运行数据。
安装:Docker 部署教程 · 来源与许可。