【问题标题】:Read email headers with flags - Mailcore & swift阅读带有标志的电子邮件标题 - Mailcore & swift
【发布时间】:2018-09-16 05:11:42
【问题描述】:

我正在使用 mailCore 从服务器获取电子邮件。我完成了会话设置和基本流程。现在我陷入了一个小问题,我无法弄清楚。

这里是获取邮件标题的代码

    let folder: String = "Inbox"
    let folderInfoFetch : MCOIMAPFolderInfoOperation = imapSession.folderInfoOperation(folder)
    folderInfoFetch.start { (error, folderInfo) in

        if (error == nil) {
            var numberOfMessages : Int32 = Int32(30)
            numberOfMessages -= 1

            let request: MCOIMAPMessagesRequestKind = .headers
            let messagesNumbers = MCOIndexSet.init(range: MCORange.init(location: UInt64(abs((folderInfo?.messageCount)!-numberOfMessages)) , length: UInt64(numberOfMessages)))
            let fetch : MCOIMAPFetchMessagesOperation = self.imapSession.fetchMessagesByNumberOperation(withFolder: folder, requestKind: request, numbers: messagesNumbers)
            fetch.start({ (error, fetchedMessages, vanishedMessages) in
                if(error != nil)
                {
                    print("Error downloading message headers: \(String(describing: error))")

                } else {
                    if let mails = fetchedMessages as? [MCOIMAPMessage] {
                        print(mails)

                    }
                }
            })
        }

此代码已成功返回邮件标头。但是其中缺少已读/未读标志。我已经看到了这个问题的许多解决方案,但它们都在目标 c 中。

我就是

MCOIMAPMessagesRequestKind requestKind = MCOIMAPMessagesRequestKindHeaders | MCOIMAPMessagesRequestKindFlags

它的解决方案是在请求中发送多种类型的标志。但是我怎样才能迅速做到这一点呢?任何帮助将不胜感激!

解决方案链接:https://github.com/MailCore/mailcore2/issues/409

【问题讨论】:

  • 你能得到像“ARC-Authentication-Results”和“Return-Path”这样的标题吗?我们正试图从电子邮件中获取。请你帮忙。

标签: ios email swift3 enums mailcore2


【解决方案1】:

因此,在敲了我的头之后,唯一对我有用的解决方案是通过合并来附加标志。

            let kind = MCOIMAPMessagesRequestKind()
            let headers = kind.union(MCOIMAPMessagesRequestKind.headers)
            let request = headers.union(MCOIMAPMessagesRequestKind.flags)

我知道这不是最好的,但它对我有用。

【讨论】:

    【解决方案2】:

    在 swift4.2 中,我使用以下语法实现了这一点:

    let requestKind: MCOIMAPMessagesRequestKind = [.headers, .flags]
    

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 2013-04-18
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多