从UID消息提取MailCore2中检索电子邮件序列号

时间:2013-10-08 15:42:58

标签: ios email email-client mailcore mailcore2

查看Mailcore文档,我看到一种方法,通过使用电子邮件UID执行提取来检索电子邮件或电子邮件的序列号。但是,在查看Mailcore2文档时,我认为没有任何方法可以实现此目的。在Mailcore2中是否有一种方法可以让我看不到,或者是一种冒泡这种信息的方法?我知道它可以在命令行中使用,但我希望能够从我的iOS应用程序中访问它。

修改

以下是我正在寻找此功能的原因:

我们有一个原生的iOS客户端,可以一次获取10个最新的电子邮件并保存。此外,客户端将一次获取接下来的10封旧电子邮件并保存,以及它看到的最低UID(minUID)。

因此,我们需要能够不断获取客户端尚未存储或看到的服务器上存在的下10个旧电子邮件。 (这就是挑战)。

最初,我们通过UID以10个为一组获取电子邮件,使用我们保存的minUID减1作为每次获取的起点,并在每次获取结束时更新我们的minUID。但是,由于UID不一定是连续的,因此返回的电子邮件数量不一致,有时为零。为了解决这个问题,我们认为(在每次获取下10封旧电子邮件之前),使用我们存储的minUID获取电子邮件,检查其当前序列号,然后根据该序列获取接下来的10封旧电子邮件将会有所帮助号。

2 个答案:

答案 0 :(得分:1)

要根据序列号获取消息,可以使用以下函数syncMessagesWithFolder:folderName:requestKind:uids:modSeq:

以下示例将为序列号folder上方的文件夹highestModSeq提取所有新的/已修改的消息。

MCOIMAPFetchMessagesOperation * op = [self.imapSession syncMessagesWithFolder:folderName
                                                                  requestKind:requestKind
                                                                         uids:[MCOIndexSet indexSetWithRange:MCORangeMake(1, UINT64_MAX)]
                                                                       modSeq:highestModSeq];

答案 1 :(得分:0)

文档并不是查找示例的最佳位置,但our wiki正日益成为这类信息的绝佳存储库。你要找的是-[MCOIMAPSession fetchMessagesByUIDOperationWithFolder:requestKind:uids:],其中一个例子可以在IMAP examples wiki page下找到。