Repository navigation
iCloud Mail v0.2.5 · 收件归档修复与 IMAP 同步优化
iCloud Mail v0.2.5:邮件归档升级修复与 IMAP 批量同步优化。
修复与优化
- 修复网页按需收件已保存正文重建版、随后 IMAP 获取相同 UID 的完整 MIME 时,出现
stage mailbox archive: archived message identity conflicts with an existing file并导致整个批次提交失败的问题。仅在非空 Message-ID 一致、旧文件大小和校验和正确且具有网页重建标记时允许升级;完整原文使用独立不可变路径,事务成功后清理旧投影。 - 归档升级保留原归档 ID、邮箱本地 UID 与取码记录;后续网页读取不会覆盖完整原文。原始 MIME 内容冲突、损坏文件及身份不一致继续报错,失败不删除已提交文件,不推进增量游标。
- 同一增量批次的匹配正文合并为一次 UID FETCH,减少逐封网络往返。默认每批最多处理 32 条 UID,保留正文大小限制、超大邮件元数据与逐批原子提交;不支持批量读取的服务器保留逐封回退,取消或失败清理已暂存文件。
- 手动单次与批量创建按实际选择的通道确认待处理候选。新通道已过期时可使用旧通道,已知来自新通道的候选不再阻塞旧通道;同通道或来源不明的候选仍先确认,身份、容量和转发目标检查保持。
验证与升级
- SQLite 与隔离 PostgreSQL 验证网页投影升级、邮件身份保持及事务回滚;覆盖损坏文件、Message-ID 不匹配、过期观察、同 UID 冲突及后续网页重放。
- IMAP 离线夹具覆盖单个命令读取整批正文、逐封兼容回退、连接复用、取消清理和 UID 游标边界;不支持的响应顺序保持失败且不前移游标。受影响 Go 包、重点 race、go vet 与版本元数据检查通过。
- 本地受控增量同步约 2.7 秒完成,状态恢复正常;该次没有新增匹配邮件,不代表大批次吞吐或真实投影升级的现场性能。
- Docker 默认继续使用应用与配套 PostgreSQL 的多架构
latest,另提供v0.2.5标签、源码与 Linux amd64 离线镜像包。升级保留数据库、密钥、邮件归档和原计划;本次收件修复无新增 schema 迁移。
完整源码比较:v0.2.4...v0.2.5。
Docker 与下载
ghcr.io/t508708/icloud-mail:latest与ghcr.io/t508708/icloud-mail-postgres:latest已同步更新,也可使用v0.2.5标签;支持 linux/amd64、linux/arm64。- 更新:
git pull --ff-only && docker compose pull && docker compose up -d --wait。保留 .env 和数据卷,升级前备份数据库、密钥和邮件归档。 - 附件包含源码 ZIP、应用与 PostgreSQL 预构建镜像的 Linux amd64 离线 ZIP、SHA256SUMS。
- 发布提交:
5e7864fb28b03bfd73fda23abd2fa82930fe3e49。来源和许可关系见 NOTICE。