【问题标题】:Retrieve Email Sequence Number from UID Message Fetch MailCore2从 UID 消息获取 MailCore2 中检索电子邮件序列号
【发布时间】:2013-10-15 15:30:26
【问题描述】:

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

编辑:

这就是我寻找此功能的原因:

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

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

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

【问题讨论】:

    标签: ios email email-client mailcore mailcore2


    【解决方案1】:

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

    下面的示例将为您获取序列号为highestModSeq 之上的文件夹folder 的所有新消息/修改消息。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的回复。我在上面编辑了我的问题,以澄清我要解决的问题。通过 UID 获取并不能解决问题。
      • 那你可能想要fetchMessagesByNumberOperationWithFolder:requestKind:numbers:
      猜你喜欢
      • 2012-01-12
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 2019-06-04
      • 2015-12-11
      • 2015-11-01
      • 1970-01-01
      相关资源
      最近更新 更多