Skip to main content

同步与离线

DesireCore 的邮件数据存储在本地,通过后台同步保持与邮箱服务器的一致。即使在没有网络的情况下,你仍然可以查看已同步的邮件并执行操作。

同步机制

自动同步

添加邮箱后,DesireCore 会自动启动后台轮询,定时检查新邮件。

同步流程

增量同步

为了节省流量和提高效率,DesireCore 使用增量同步——只获取上次同步以来的变更:

邮箱类型增量同步方式说明
GmailHistory API通过 historyId 追踪变更,只获取新增和修改的邮件
OutlookDelta API使用 deltaLink 增量查询,效率高
IMAPUID 追踪记录最后同步的 UID,只拉取更新的邮件

手动同步

在邮件视图的顶部栏点击同步按钮,可以立即触发一次同步。统一收件箱视图中的同步全部按钮会同时触发所有账户的同步。

同步状态

顶部栏会实时显示同步状态:

  • 同步中 — 蓝色脉冲动画
  • 同步失败 — 红色指示器
  • 已完成 — 显示上次同步时间,如「5分钟前」

本地存储

同步到本地的邮件以如下结构存储:

~/.desirecore/mail/
├── gmail/
│ └── user@gmail.com/
│ ├── meta.json # 账户信息、同步状态
│ ├── index.json # 邮件索引(用于快速搜索和列表)
│ └── messages/ # 每封邮件的完整内容
├── outlook/
│ └── ...
└── imap/
└── ...
  • 索引文件 存储邮件的轻量元数据,用于列表展示和搜索
  • 邮件文件 存储完整的邮件正文和附件信息
  • 所有敏感信息(Token、密码)使用 AES-256-GCM 加密存储

离线操作

当你在没有网络连接的情况下执行邮件操作时,DesireCore 不会报错——操作会被放入离线队列,等网络恢复后自动执行。

支持离线排队的操作

操作说明
标记已读/未读恢复网络后同步到服务器
删除邮件恢复网络后在服务器上执行删除
移动到文件夹恢复网络后移动
添加/移除标签恢复网络后同步标签变更
发送邮件恢复网络后自动发送
归档恢复网络后执行归档

队列处理

离线操作队列的处理规则:

  • 恢复网络后自动按顺序执行
  • 每个操作最多重试 3 次
  • 重试失败的操作会标记为「失败」,你可以查看失败原因并手动重试或删除
乐观更新

即使在离线状态下,你在 DesireCore 中看到的状态也会立即更新(如邮件标记为已读后界面立即变化)。如果后续同步到服务器时失败,状态会回滚。

同步设置

你可以为每个邮箱账户单独配置同步选项:

设置项说明
同步间隔自动轮询的时间间隔(分钟),设为 0 可禁用自动同步
新邮件通知是否在有新邮件时推送通知

下一步