如何使用MailCore到示例iPhone应用程序从邮件中检索.xml扩展名附件

时间:2013-05-13 06:32:25

标签: iphone ios ipad email mailcore

如何使用 MailCore for iphone 从邮件中检索 .xml扩展程序附件

我使用MailCore将附件从我的邮件下载到我的示例iPhone应用程序。我从我的邮件中获取了收件箱主题,我将其分类为特定的邮件主题和邮件附件。

问题是我有特定的邮件主题但没有附件。我使用下面的代码从邮件中获取附件,但它不起作用。

NSArray *Array=[msg attachments];
CTBareAttachment *ctbaratt=[Array objectAtIndex:0];
CTCoreAttachment *ctcoreatt=[ctbaratt fetchFullAttachment];

但我得到了:

Array count is zero

请分享您的想法。

1 个答案:

答案 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应根据请求下载它。事实并非这表明您的帐户或文件夹可能无效或无法连接。