1

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

我使用 MailCore 将附件从我的邮件下载到我的示例 iPhone 应用程序。我从我的邮件中获取收件箱主题,这些主题我排序以获得特定的邮件主题和邮件附件。

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

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

但我得到:

Array count is zero

请分享你的想法。

4

1 回答 1

2

这可能有几个原因:

1)您可能没有下载足够的有关 CTCoreMessage 的信息。在发出下载 CTCoreMessages 的请求时,您必须通过指定正确的 fetch 属性来指定您想要的信息。

例如:

[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 内,因为它们将包含有关附件的信息。

当您看到实际获取的内容时,您可以阅读 RFC,如果您正在处理邮件核心和 IMAP,那么在时间上进行投资是非常值得的。

2)如果失败,可能您的 CTCoreAccount 和/或 CTCoreFolder 未连接,从而阻止 CTCoreMessage 具有有效的 mailimapsession 并且无法下载附件信息。如果 CTCoreMessage 中的属性不可用,则 libetpan 应根据请求下载它。事实并非表明您的帐户或文件夹可能无效或未连接。

于 2013-05-16T22:22:02.717 回答