如何使用 MailCore for iphone 从邮件中检索 .xml扩展程序附件?
我使用MailCore将附件从我的邮件下载到我的示例iPhone应用程序。我从我的邮件中获取了收件箱主题,我将其分类为特定的邮件主题和邮件附件。
问题是我有特定的邮件主题但没有附件。我使用下面的代码从邮件中获取附件,但它不起作用。
NSArray *Array=[msg attachments];
CTBareAttachment *ctbaratt=[Array objectAtIndex:0];
CTCoreAttachment *ctcoreatt=[ctbaratt fetchFullAttachment];
但我得到了:
Array count is zero
请分享您的想法。
答案 0 :(得分:2)
这可能有以下几个原因:
1)您可能没有下载有关CTCoreMessage的足够信息。在发出下载CTCoreMessages的请求时,您必须通过指定正确的提取属性来指定所需的信息。
例如:
[core_folder messagesFromSequenceNumber:from to:to withFetchAttributes: CTFetchAttrEnvelope | CTFetchAttrBodyStructure]
应该填充有关附件的信息。
从IMAP获取消息时,该命令将准确指定所需的信息。
您可以通过启用MailCore Logging来查看正在获取的内容,如下所示:
MailcoreEnableLogging();
[core_folder messagesFromSequenceNumber:from to:to withFetchAttributes: CTFetchAttrEnvelope | CTFetchAttrBodyStructure];
MailcoreDisableLogging();
您将看到格式为
的命令<command number> <UID> <Command> (<requested structure>)
我想你会看到这样的东西:
1 UID FETCH (ENVELOPE)
您应该确保在()BODY或BODY [2]或RFC822内部包含有关附件的信息。
当你看到实际被提取的内容时,你可以read the RFC,如果你正在处理mailcore和IMAP,那么及时投资是值得的。
2)如果失败,可能是您的CTCoreAccount和/或CTCoreFolder未连接,从而阻止CTCoreMessage具有有效的mailimapsession并且无法下载附件信息。如果CTCoreMessage中的属性不可用,则libetpan应根据请求下载它。事实并非这表明您的帐户或文件夹可能无效或无法连接。