1

我正在开发一个应用程序,其中本地核心数据数据库与用户的 IMAP 电子邮件帐户保持同步。我正在使用 MailCore ( http://libmailcore.com ) 来处理所有 IMAP API 调用,但似乎有一些缺点。这是我希望我的应用程序能够执行的操作:

  • 在服务器上拥有最近 50 封电子邮件的本地副本
  • 下载自上次提取以来用户收到的所有新电子邮件,设备上最多保留 50 封。
  • 删除服务器上已删除的本地邮件。

MailCore 提供的用于检索电子邮件的唯一方法如下:

- (NSArray *)messagesFromSequenceNumber:(NSUInteger)startNum to:(NSUInteger)endNum withFetchAttributes:(CTFetchAttributes)attrs

- (NSArray *)messagesFromUID:(NSUInteger)startUID to:(NSUInteger)endUID withFetchAttributes:(CTFetchAttributes)attrs

现在,我正在从服务器检索最新的电子邮件并下载有关它们的所有信息,然后我从服务器检索最新的 50 个 UID,并将它们与我的本地缓存进行比较,以查看已删除的内容。这似乎非常低效。有没有更好的方法来同步收件箱而无需两次往返服务器(至少)?

4

1 回答 1

0

检查 imap 服务器功能。NOOP 和 imap 空闲功能的实现是您查询的答案。

于 2013-02-15T10:18:27.953 回答