iOS IMAP 同步与 MailCore 最佳实践

Posted

技术标签:

【中文标题】iOS IMAP 同步与 MailCore 最佳实践【英文标题】:iOS IMAP Synchronization With MailCore Best Practices 【发布时间】:2013-01-18 18:04:15 【问题描述】:

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

【问题讨论】:

我们也在使用 mailcore,由于它的文档很差,我们甚至无法找到简单的任务,比如获取电子邮件的所有标题。愿你帮助我们 【参考方案1】:

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

【讨论】:

以上是关于iOS IMAP 同步与 MailCore 最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

mailcore2 imap 错误域=MCOErrorDomain 代码=5

从 MailCore 的 Microsoft Exchange Imap 帐户发送电子邮件

IMAP 客户端同步本地消息服务器?

MailCore 如何删除邮件

Mailcore 检索文件夹和撰写功能

Mailcore2 - 从特定日期开始搜索电子邮件