ios - 无法检索额外的标头 - 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())")
}
})
但是我没有以这种方式获得额外的标题。我在这里做错了什么。?任何帮助,将不胜感激。
解决方案
在开始之前,您必须在 fetch 操作中指定所需的额外标头。在你的情况下:
fetch.extraHeaders = ["Encrypted"]
然后您可以使用以下方法检索该值:
mails[0].header.extraHeaderValue(forName: "Encrypted")
推荐阅读
- node.js - 在 node.js 中,我如何知道 fs.stat() 是否会为给定的文件/路径/卷/fs 返回可用的 crtime 和/或出生时间字段?
- ios - 无法为发布而构建 - Flutter、Xcode
- c++ - 查找圆内最近的坐标
- django - Django 和 React.js 生产
- python - discord.py 无法识别命令
- python - 如何根据行索引和列名在两个数据框之间设置多个值?
- wordpress - 图像未在 WordPress 仪表板中上传
- c - 在c中的memcpy之后的字符串末尾附加垃圾字符
- php - Laravel 将数据从一张表插入另一张表报错
- android - 单击数据表导出按钮时应用程序崩溃