Для некоторых писем я хочу отправлять дополнительные данные с заголовками. Как будто я хочу знать, зашифровано письмо или нет. Для этого я устанавливаю дополнительный заголовок, как показано ниже.
Установка дополнительного заголовка
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())")
}
})
Но таким образом я не получаю лишних заголовков .. Что я здесь делаю не так? Любая помощь будет оценена по достоинству.





Вы должны указать дополнительный заголовок, который хотите в операции выборки, перед ее запуском. В твоем случае:
fetch.extraHeaders = ["Encrypted"]
Затем вы можете получить значение с помощью:
mails[0].header.extraHeaderValue(forName: "Encrypted")