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 をダウンロードするリクエストを作成するときは、正しいフェッチ属性を指定して、必要な情報を指定する必要があります。

例えば:

[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 に答える