首页 > 解决方案 > 无法检索额外的标头 - Mailcore

问题描述

对于某些电子邮件,我想发送带有标题的额外数据。就像我想知道电子​​邮件是否已加密。为此,我设置了额外的标题,如下所示。

设置额外的标题

let mailBuilder: MCOMessageBuilder! =  MCOMessageBuilder()
mailBuilder.header.subject = "Subject"
mailBuilder.header.setExtraHeaderValue("yes", forName: "Encrypted")
// set rest of data.  From,TO,CC,Body etc and send email.. // Email sending is working properly. 

检索额外的标头

func fetchRequestKind () -> MCOIMAPMessagesRequestKind {
        let kind = MCOIMAPMessagesRequestKind()
        let headers = kind.union(MCOIMAPMessagesRequestKind.headers)
        let structure = headers.union(MCOIMAPMessagesRequestKind.structure)
        let request = structure.union(MCOIMAPMessagesRequestKind.flags)
        let requestHeader = request.union(MCOIMAPMessagesRequestKind.extraHeaders)
        return requestHeader
    }

 let request = self.fetchRequestKind()

                    let messagesNumbers = MCOIndexSet.init() // range get set here
                    let fetch : MCOIMAPFetchMessagesOperation = self.imapSession.fetchMessagesByNumberOperation(withFolder: "Inbox", requestKind:request, numbers: messagesNumbers)
                    fetch.start({ (error, fetchedMessages, vanishedMessages) in
                        if(error != nil)
                        {
                            failure(error.debugDescription)
                        } else {
                            if let mails = fetchedMessages as? [MCOIMAPMessage] {
                               print("\(mails[0].header.subject) &&& \(mails[0].header.allExtraHeadersNames())")
                        }
                    })

但是我没有以这种方式获得额外的标题。我在这里做错了什么。?任何帮助,将不胜感激。

标签: iosswiftemailmailcore2mailcore

解决方案


在开始之前,您必须在 fetch 操作中指定所需的额外标头。在你的情况下:

fetch.extraHeaders = ["Encrypted"]

然后您可以使用以下方法检索该值:

mails[0].header.extraHeaderValue(forName: "Encrypted")

参考:https ://github.com/MailCore/mailcore2/issues/1288


推荐阅读