Repository navigation
Releases: t508708/icloud-mail
Release list
iCloud Mail v0.2.6 · 并发取件与主号独立保活
iCloud Mail v0.2.6:并发取件、主号独立保活与目录补充优化。
修复与优化
-
Apple Account 保活按到期主号独立执行,同号最多一个在途任务并跨轮去重;取消固定 4 个全局名额,一个主号的慢请求或操作等待不占其他主号的名额。保留每号 4~6 分钟随机计划、25 秒执行上限、持久化退避与明确失效停止规则。
-
只读目录增加 Apple Account 补充通道:优先使用 iCloud Web,仅在该通道登录缺失或认证失效时尝试已保存的新通道;限流、服务故障和响应结构错误沿原路径处理。目录转发归属、账户身份及重复项校验保持严格,目录缺项不删除本地地址,停用、删除和创建前后核验继续使用既有流程。
-
连接管理显示最近成功续期、下次计划与失败重试时间,区分暂时退避和需要重新登录;状态读取仅访问本地记录,响应只包含公开连接元数据。
-
共享取件取消同主号 64 个在途及全站每秒 100 次的一刀切限制;不同隐藏邮箱复用主号收件,HTTP 入口改为有界等待,并为普通读取预留容量。
-
并发、队满与排队超时返回可重试的
503 PICKUP_BUSY;429 用于刷新速率超限。同 root 额度内并发读者共享同步,完成与取消只释放自身引用,不重置冷却。 -
Pool 取码本地复验改用共享读锁,避免所有读请求串行;保留凭据轮换、租约释放与退役复验。首次同步耗尽等待预算时执行最终本地读取,返回新码或正常
no_code。 -
冷恢复按服务端日期定位时间窗口,再按 UID 分页,不再丢弃最后 128 封以外的本次新信;窗口起点与游标同事务持久化,跨批次及重启继续。新增 SQLite/PostgreSQL 一致、幂等的
imap_active_windows表,完成后清除;不下载窗口前的历史正文。 -
修正文档中的批大小:服务入口为每批 128 条 UID,底层库默认 32;批大小限制单次处理量,不限制隐藏邮箱并发数量。
-
后台 Pool 项目列表复用已加载数据,减少切换和刷新时的重复请求;补齐加载状态、窄屏表格滚动和无障碍提示。管理页面禁止代理改写响应,保留本地 JS/CSS 与原主题。
验证与升级
- 离线 TLS IMAP 夹具覆盖 200 个 root 共享收件、冷启动与连接复用;测试环境冷取件约 1.20 秒、复用读取约 3 毫秒,属于本地夹具结果。实际 Apple 网络与投递耗时另受上游影响。
- 保活验证覆盖 32 个主号同时到期、同号跨轮去重,以及前 4 个主号等待各自操作锁时第 5 个仍可执行。只读目录验证账户身份、转发归属、错误分类和缺项不删除。
- 以实际发布内容导出的隔离源码通过 Go 全套测试、全套
go vet、保活及目录重点 race 检查;前端 248 项测试与 Vite 构建通过。 - 新增
imap_active_windows持久化最近收件窗口,SQLite 与 PostgreSQL 迁移一致且幂等;升级保留数据库、密钥、邮件归档和创建计划。创建、退役与删除继续沿用原合同。 - Docker 默认继续提供应用与配套 PostgreSQL 的多架构
latest,并提供v0.2.6标签及 Linux amd64 离线镜像包。升级前备份数据库、密钥与邮件归档。
完整源码比较:v0.2.5...v0.2.6。
Docker 与下载
ghcr.io/t508708/icloud-mail:latest与ghcr.io/t508708/icloud-mail-postgres:latest已同步更新,也可使用v0.2.6标签;支持 linux/amd64、linux/arm64。- 更新:
git pull --ff-only && docker compose pull && docker compose up -d --wait。保留 .env 和数据卷,升级前备份数据库、密钥和邮件归档。 - 附件包含源码 ZIP、应用与 PostgreSQL 预构建镜像的 Linux amd64 离线 ZIP、SHA256SUMS。
- 发布提交:
c18ebcab012b9c953060a4404e3717ffca2448c0。来源和许可关系见 NOTICE。
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。
iCloud Mail v0.2.4 · 创建确认与通道冷却修复
iCloud Mail v0.2.4:自动创建确认、通道冷却隔离与后台弱网恢复。
修复与调整
- 修复待确认地址恢复及单地址详情读取时,新通道限流误将整个自动计划暂停一小时的问题。候选来源与完成 ID 持久保存,限流只冷却受影响通道并遵守更长 Retry-After;旧通道按原时间槽与独立额度继续。已知 ID 只重读原详情,来源不明的旧候选继续保守确认,未知结果不换地址重建。
- 后台普通读取增加 15 秒等待上限,覆盖连接及响应正文;提交操作使用独立 120 秒上限。请求挂起会显示明确提示,切换页面仍可主动取消,不自动重放已提交操作。
- 页面启动保留加载提示,等会话检查及目标页面模块就绪后再挂载;资源失败或加载超时提供手动重新加载入口,页面切换模块失败保留当前页面并显示提示。主题脚本延后执行,减少脚本网络阻塞造成的空白。
- 修复 Apple 单地址详情已确认启用、但目录列表仍遗漏该地址时,手动与自动创建持续显示“待目录确认”的问题。候选和凭据先持久化,再按完成回执的原 ID 读取详情;严格核验地址、ID、存在及启用状态,转发目标必须匹配当前主号。
- 兼容完成接口返回原候选的
active=false / exists=false、而随后详情已启用的回执差异:收到 ID 后仍读取详情核验,完成回执的标记不作为跳过详情的依据。 - 旧候选恢复先核对原地址,明确完成或结果未知时保留候选,不因超过 20 分钟且列表缺失就换地址重建。详情异常继续使用目录确认兜底,不把不完整回执当作成功。
- 修复无会话诊断字段时,管理操作失败日志出现
LogValue panicked的问题。目录同步仍报告 Apple 实际返回数量,不以本地库存冒充远端目录数量。
合并此前 latest 的通道降级修复
- 修复新通道认证过期后仍被选中、随后关闭整个自动创建计划的问题。已开启的计划保留;新通道失效且旧通道可用时,在原持久化计划中分散安排每小时最多 5 次旧通道尝试。
- 新通道重新登录后,后续时间槽自动恢复新通道 19 次、旧通道 4 次的每小时规则,不重排计划,不清空滚动额度或 Apple 冷却。临时续期故障不直接当作退出。
- 创建时确认新通道认证失效会持久保存该通道失效状态,保留旧通道登录;本次调用不重复创建。旧通道目录失效时暂停远端创建、保留计划,手动关闭的计划保持关闭。
- 未执行的时间槽不写成远端创建尝试;待确认地址、未知副作用、库存/容量与账户身份检查保持原规则。
- SQLite 完整离线创建与确认验证:降级创建并入库 5 个,更新登录态后完成 19+4 个。跨调度器重启、两边离线、手动关闭、SQLite/PostgreSQL 滚动额度与冷却测试、受影响 Go 包、重点 race、go vet 及 diff 检查通过;未额外发送真实 Apple 创建探测。
- README、创建规则、兼容说明和内置
/docs/同步更新;此前仅通过 latest 提供的降级补丁纳入本次正式版本。
详细规则见 自动创建通道降级与恢复。
验证与升级
- 受影响 Go 包测试、
go vet、重点竞态检查通过。SQLite 与独立 PostgreSQL 验证候选来源、完成 ID、重启恢复、幂等迁移、主号隔离和独立冷却。 - 完整 23 槽离线调度联测:新通道候选遇到限流后,原候选保留,旧通道完成 4 次创建并入库;2 小时 Retry-After 不被轮询延长。详情确认、旧候选兼容、fallback 防重复和公共目录限流优先级均覆盖。
- 前端 247 项测试通过;浏览器故障注入验证入口资源失败、路由模块失败和 API 挂起的恢复提示。正常加载测试不代表用户设备代理或网络速度改善。
- 本地观察原自动计划:新版本旧通道创建成功并入库,约 8.6 秒;未通过真实限流来验证异常分支,也不承诺 Apple 配额或会话永久有效。
- Docker 默认继续使用应用与配套 PostgreSQL 的多架构
latest,另提供v0.2.4镜像标签、源码与 Linux amd64 离线包。升级保留数据库、密钥、邮件归档和原计划;新增候选辅助表自动迁移,历史来源不明项继续保守核验。
完整源码比较:v0.2.3...v0.2.4。
Docker 镜像与下载
- 默认部署继续使用
ghcr.io/t508708/icloud-mail:latest和ghcr.io/t508708/icloud-mail-postgres:latest;两者亦提供v0.2.4标签,支持 linux/amd64、linux/arm64。 - 更新命令:
git pull --ff-only && docker compose pull && docker compose up -d --wait。升级前备份数据库、密钥与邮件归档,保留原 .env 和数据卷。 - 附件提供源码 ZIP、含应用和配套 PostgreSQL 预构建镜像的 Linux amd64 离线 ZIP,以及 SHA256SUMS。离线包包含 RELEASE.json,记录源码提交和镜像 ID。
- 发布源码提交:
0120994e9dcef6f8be712aa487acde6a8031610a。部署及来源说明见 README 与 NOTICE。
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 部署教程 · 来源与许可。
iCloud Mail v0.2.2 · GHCR latest 与社区入口
iCloud Mail v0.2.2:正式提供 GHCR latest 多架构镜像与简化部署流程。
- 默认 Docker 部署改为匿名拉取 GHCR
latest;应用与 PostgreSQL 镜像均支持 linux/amd64、linux/arm64。 - 新增 GitHub Actions 镜像发布:
main更新latest,版本标签发布对应版本与短 SHA 标签。 - 源码构建改用
compose.build.yaml,离线固定版本继续使用compose.offline.yaml。 - 仓库调整为独立项目,完整保留 Git 历史、上游来源和许可说明。
- 后台与 README 增加 QQ 群
1105888476一键入口。
Docker 部署
git clone --depth 1 https://github.com/t508708/icloud-mail.git
cd icloud-mail
cp -n .env.example .env
docker compose pull
docker compose up -d --wait下载与验收
icloud-mail-v0.2.2-linux-amd64.zip:Linux amd64 应用与 PostgreSQL 预构建 Docker 镜像、部署配置及源码。icloud-mail-v0.2.2-source.zip:标签对应的完整源码包。SHA256SUMS:下载文件校验;镜像包内另含逐文件校验和RELEASE.json。- GHCR:
ghcr.io/t508708/icloud-mail:v0.2.2、ghcr.io/t508708/icloud-mail-postgres:v0.2.2。 - 两个 GHCR 镜像均已核对 amd64/arm64 清单;amd64 镜像 OCI 版本与完整源码提交一致。
- 干净标签快照通过 240 项前端测试、生产构建、Go 全量测试和
go vet。
源码提交:32d3d2db2291006e2ddce70b42ce681d1a25b2e1
完整更新日志 · v0.2.1...v0.2.2 · 部署文档 · 来源与许可
iCloud Mail v0.2.1 · 取件冷却与双通道创建修复
iCloud Mail v0.2.1:取件限流与双通道自动创建补丁更新,附 Linux amd64 预构建 Docker 镜像。
-
自动创建改为每主号每小时 23 个错峰计划槽,新通道最多 19 次、旧通道最多 4 次,分别持久化滚动额度与冷却。明确限流且未产生地址时可使用另一通道的剩余额度;待确认和不确定结果继续走原确认流程。
-
创建限流默认等待从本地写死的 24 小时调整为 1 小时,尊重 Apple 更长的 Retry-After;创建通道限流不再暂停另一通道,公共验证/目录限流仍暂停主号。手动探测保持独立,历史冷却不会在升级时清空。
-
共享取件改用容量 2、每 2 秒恢复 1 次的 root 预算;分离一个普通读取与一个长等待,等待结束不再追加 2 秒冷却,上游同步仍合并并限频。
-
429 保留原 JSON 错误码,新增原因及剩余时间响应头;被拦截请求不消耗 root 额度或推动时间。旧非共享路径维持原保护规则,详见 分层取件限流。
-
自动创建计划、通道尝试记录与冷却支持 SQLite / PostgreSQL 持久化;历史未分通道的尝试记录采用保守过渡,升级后的首小时可能少建。取件限流状态仍在单个应用进程内维护。
-
已通过受影响 Go 包、聚焦 race、vet、PostgreSQL 并发与重启测试。公网取件连续两次返回 HTTP 200、超额后剩余等待递减并恢复;该验证未发送新邮件。自动计划的 23 次是安排上限,实际成功量取决于 Apple。
下载与镜像验收
icloud-mail-v0.2.1-linux-amd64.zip:应用与配套 PostgreSQL 镜像、部署配置及源码。icloud-mail-v0.2.1-source.zip:可自行构建的源码包。SHA256SUMS:下载校验文件;包内另有逐文件校验及记录镜像 ID 的RELEASE.json。- 两个镜像从提交
4c0e00dfc76f386a134582777643467ac57d371f的干净归档构建,OCI 标签中的版本与提交均已核对。 - 已实际导入包中镜像,在无外网的独立空白 Compose 环境中执行
--no-build --pull never启动,应用和数据库健康检查、后台 HTML、依赖许可文件检查通过。 - 当前部署已切换到本版本的应用镜像并通过健康检查;保留原数据库与应用回滚镜像。
安装与来源:Docker 部署教程 · NOTICE
iCloud Mail v0.2.0 · 共享收件与后台体验更新
iCloud Mail v0.2.0:自首个公开标签 v0.1.0 以来的累计更新,附 Linux amd64 预构建 Docker 镜像。
本次汇总自首个公开标签 v0.1.0 以来的累计变化,以两个版本的实际源码差异为准。邮箱池基础领取、独立凭据、深浅色控制面板和 Docker 部署已包含在初版;以下列出之后新增、调整和修复的内容。
新增与改进
- 按活跃主号共享 IDLE 通知与增量读取;复用已认证的读取连接,闲置后释放,不为每个 root 或
+tag建连。 - Pool lease code 增加可选
wait_seconds=0..15,支持在预算内等待新码,保留默认单次读取合同。 - 支持严格的
root+tag回根归档,完整地址优先;域名保持一致,不作点号或近似匹配。 - 增加 Pool 已使用邮箱退休作业:管理员 Session / CSRF 与项目 Key 双重鉴权,幂等提交、项目隔离、持久化 lease 状态及未知结果待核查。
- 退休接口整批预检 alias/lease 绑定和项目归属,按
used -> retiring -> retired收口;明确失败恢复used,未知或重启中断保持待核查。保留租约历史,SQLite / PostgreSQL 迁移对应,旧管理批量删除语义保留。 - 后台按目标页面预载本地 JS/CSS,首屏复用已验证会话,减少串行网络请求;新增生产转译后的会话引导回归测试。
- 收件日志增加连接是否复用、建连登录耗时与邮箱读取耗时,便于区分网关处理、上游连接和投递延迟。
行为调整
- 会话保活:已有 Apple Account 续期调度从接近短 TTL 到期时触发,调整为每次成功后随机 4-6 分钟;抽样结果持久化,重启沿用。更短 TTL 提前续期,失败退避和 Apple
Retry-After优先。 - 续期可观测性:补充原登录时间、会话年龄、下次续期、失败检查点及上游操作/状态码;明确失效停止自动尝试,重新登录后恢复,不宣称会话永久有效。
- 手动批量:与自动计划的本地额度分离,成功一项后直接继续,不再等待自动计划的 2 分钟节奏。
- 单次探测:移除原本独立的 25 次/小时本地额度和等待;不消耗或延长自动计划额度/冷却。Apple 实际限流、账号状态、容量、转发目标及同主号串行校验仍生效。
- 自动创建:保持每主号滚动 18 次/小时、至少间隔 2 分钟;明确区分手动与自动规则。自动及批量遇 Apple 限流仍进入相应等待,单次探测只返回本次结果。
- 取件冷却:同一 root 完成后从 3 秒调整为 2 秒;主号实际 IMAP 启动间隔从 30 秒调整为 2 秒,并合并同主号工作,减少邮件已到却等待旧调度窗口的情况。
- 并发预算:共享模式支持全站最多 128 个在途取件、每主号 64 个;真实 IMAP 并发独立限制。Pool code 使用专用取件预算,避免多个 root 轮询重复消耗公共每 IP 额度;其他 Pool 路由保留原预算。
- 历史读取:首次/闲置恢复只检查最近 128 条候选头部,正文限最近 15 分钟;活跃时从持久化游标继续增量。有取件需求且观测超过 5 秒才共享补查,10 分钟无人取件后休眠。
修复与边界
- 收到新邮件却仍读到旧记录:兼容 Apple
X-ICLOUD-HME缺少r字段的实际投递格式,并继续核验 root、转发目标及冲突收件头;按需候选检索增加+tag发现,再严格路由。邮件没有进入本地归档时,不用旧码冒充新码。 - 缺失投递头的定向兼容:仅在直连 iCloud、指定 alias 取件、没有 HME/强投递头且只有单一 To 地址时允许精确目标回退;主号共享扫描不放宽为任意 To/Cc 匹配。
- 虚假同步失败:修复空闲恢复已追平 UID 仍报告未完成,导致
503 SYNC_UNAVAILABLE、额外退避和下游超时的问题。 - 反复刷新一直限流:冷却以实际取件完成时间为锚;被拦截的刷新不重置计时。Pool、Bearer 与直达链接继续共享同 root 状态。
- IDLE 未及时通知新信:增加按需求、共享且有界的补查;不再仅依赖长连接存在来判断数据新鲜度,也不在无人访问时持续扫信。
- 创建一直停在目录确认:同一候选地址可恢复完成步骤;完成请求明确 5xx 时短暂等待后最多重试一次,不重新生成地址。目录已出现则确认原凭据;候选超过 20 分钟且完整目录仍缺失时,仅清理未发布的本地预留,再重新做创建预检,避免陈旧 pending 永久阻挡后续操作。
- 完善读取连接在取消、断线、主号停用/删除、凭据变化时的回收,以及等待取码返回前的身份和租约复验。
- Pool code 等待期间不占用 Pool 或全量凭据轮换锁;取消单个请求不取消其他读者的共享同步。过期、释放、停用、Key 轮换后的请求在返回前重新校验。
- 生产后台刷新回退:修复前端转译后原生时钟调用与默认参数导致引导失败、重新串行请求会话的问题;补充真实构建产物回归。会话数据仍禁止缓存,数据 API 独立鉴权。
文档与发布
- 重写本派生版本 README,详细配置和兼容说明保留至
docs/REFERENCE.md。 - 新增根目录
VERSION,同步前端 manifest/lockfile 版本,增加发布元数据与文档链接一致性测试。 - 保留上游署名与许可现状;提供源码 ZIP、Linux amd64 应用与 PostgreSQL 预构建镜像包、校验文件及 Docker 部署教程。镜像从干净提交构建,不包含用户运行数据。
- 补充离线 TLS IMAP、多 root 错峰取件及真实只读探针证据,见 验收记录。既有 API 和旧管理批量删除合同保持。
升级提示
- 升级前成组备份数据库、keys、installation state 与 mail archive;保留现有
.env和卷。 - 自动创建默认关闭;现有计划保留启停状态。Apple 配额与会话有效期仍取决于其实际响应。
wait_seconds为可选参数;现有客户端保持默认行为,采用等待模式时调整 HTTP 超时并遵循Retry-After。- 本地
+tag路由通过离线验证;真实投递和端到端延迟仍需在自己的环境验收,不将热读耗时作为投递承诺。
验证
- 本次文档与版本更新运行 239 个前端/发布元数据测试,全部通过;版本一致性、相对链接和来源署名检查通过。
- 本版本功能代码此前已通过受影响 Go 包、聚焦 race、
go vet和干净快照构建;40 root /+tag/ 错峰等待 TLS fixture 连续 3 次通过。具体命令与实测条件见验收记录。 - 后台在同浏览器、热缓存、180 ms 模拟延迟与 200 KiB/s 下载条件下,主号刷新中位数从 650 ms 降到 448 ms,邮箱池从 722 ms 降到 530 ms;不是各地区网络的统一承诺。
- 真实只读探针冷读 2647 ms、热补查 480 ms,证明连接复用生效;这是同版本冷/热比较,未将其解释为新邮件端到端投递已降到 480 ms。
- 发布提交更新说明、版本、镜像打包与对应校验,不包含尚未审查的工作树改动;发布构建不替换运行服务。
完整源码比较:v0.1.0...v0.2.0。
下载与镜像验收
icloud-mail-v0.2.0-linux-amd64.zip:应用与配套 PostgreSQL 镜像、部署配置及源码。icloud-mail-v0.2.0-source.zip:可自行构建的源码包。SHA256SUMS:下载校验文件;包内另有逐文件校验及记录镜像 ID 的RELEASE.json。- 两个镜像从提交
a5d84e49576c78368199a01b2049f3b30eae49b0的干净归档构建,OCI 标签中的版本与提交均已核对。 - 已实际导入包中镜像,在无外网的独立空白 Compose 环境中执行
--no-build --pull never启动,应用和数据库健康检查、后台 HTML、依赖许可文件检查通过。 - 本次发布未替换已有运行服务。
安装与来源:Docker 部署教程 · NOTICE
v0.1.0 - Public source baseline
首次公开源码基线(预发布)。
- Web 控制面板、浅色/深色主题与本地化前端资源。
- 多主号、隐私邮箱、邮箱池、批量操作与定时创建。
- 按需 OTP / IMAPS 取件、独立凭据及轮换;同一邮箱共享 3 秒请求间隔。
- Docker 源码构建、首次安装说明及宝塔单文件编排入口。
验证:Go 全套测试通过(未启用的外部集成测试保持跳过);前端 230 项测试通过;Vite 生产构建和 Compose 配置校验通过。未连接真实 Apple 账号执行发布测试。
下载下方 Source code (zip),按照 DELIVERY.md 源码构建安装。本版本未附预构建 Docker 镜像,不含账号、邮件、密钥、证书或本机运维历史。
许可:保留 mangobubu/icloud-api 上游来源和历史,上游尚未提供通用软件许可证,整仓未套用 MIT,详情见 NOTICE.md。
Apple 接口与限流由上游决定;长时会话恢复仍需持续验证,保持单应用实例。