MailCore2 - 获取邮件内容而不下载图像或附件?

时间:2015-04-14 17:31:33

标签: ios objective-c email mailcore2

我想提供用户邮件的预览,但我不想仅仅为了这样做而下载附件。

我需要的信息是:

  • 主题
  • 日期
  • 发件人信息(显示名称,如果有,电子邮件地址)
  • 纯文字信息

通过使用请求类型fetchMessagesByNumberOperationWithFolder:调用方法MCOIMAPMessagesRequestKindHeaders,我会获得日期和主题,但如果任何邮件包含附件,则返回的速度非常慢。通过请求类型MCOIMAPMessagesRequestKindUid调用它,它返回非常快,只有Uid(和当前日期,作为占位符)。从那里,我仍然需要获得主题,日期和发件人。

现在我仍在尝试获取此信息,同时避免下载邮件附件。

调用fetchParsedMessageOperationWithFolder:fetchMessageOperationWithFolder:都会下载包含附件的邮件,因此返回的速度非常慢。

由于fetchMessageOperationWithFolder:NSData对象完成,因此检查给定对象的大小会将其显示为常规消息的大小,加上其对象的大小。附件。

如何在不下载任何附件的情况下获取所需信息?

编辑:致电requiredPartsForRendering可以向我提供电子邮件的内容,但为了检索日期和发件人信息,我仍然需要MCOIMAPMessagesRequestKindHeaders的请求,哪个会下载附件。

所以澄清一下:

我希望从IMAP电子邮件中获取以下信息,而无需下载电子邮件附件:

  • 主题
  • 日期
  • 发件人信息(显示名称,如果有,电子邮件地址)
  • 纯文字信息

1 个答案:

答案 0 :(得分:2)

以下方法对您有所帮助:

-[MCOAbstractMessage requiredPartsForRendering]将返回您需要提取的消息部分,以便能够显示消息的文本内容。

-[MCOIMAPSession fetchMessageAttachmentOperationWithFolder:uid:partID:encoding:]将帮助您获取每个部分。

-[MCOIMAPMessage htmlRenderingWithFolder:delegate:]会将呈现的内容作为HTML返回(如果您不通过代理提供部分的所有内容,则返回nil。

如果您想将HTML转换为无格式字符串,

-[NSString mco_flattenHTML]也很有用。