iOS IMAP与MailCore同步最佳实践



我正在开发一个应用程序,其中本地核心数据数据库与用户的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,并将它们与我的本地缓存进行比较,以查看删除了什么。这似乎效率很低。有没有更好的方法来同步收件箱,而不需要两次往返服务器(至少)?

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

最新更新