1

メールを取得する必要があるAndroidアプリケーションを開発しています。そのために、JavaでIMAPサービスを使用しました。フォルダー、電子メールIDなどを取得していますが、EditTextウィジェットのように電子メールメッセージの本文部分ではなく、次のような行を取得しています-javax.mail.internet.MimeMultiPart@45eb3663

では、どうすればこの問題を解決し、電子メール メッセージの本文部分をそのまま (どのように送信されたか) 取得できるのでしょうか。次のようなコードを使用しました。

bodyPart=message[arg2].getContent().toString();
4

3 に答える 3

1

電子メールに複数の部分 (たとえば、HTML とプレーン テキストの部分または添付ファイル) がある場合、javax.mail.internet.MimeMultiPartを取得します。

API ドキュメントを見ると、 を使用getCount()して部品の数を把握したりgetBodyPart(int index)、特定の部品を取得したりできることがわかります。

関心のある部分を見つける必要があります。次のコード例は、すべての部分を取得して内容を出力します。

MimeMultiPart multiPart = message[arg2].getContent();
for(int i = 0; i < multiPart.getCount(); i++) {
    Object content = multiPart.getBodyPart(i).getContent();
    System.out.println(content);
}

これが、電子メールがどのように受信されるか、および Java で電子メールを処理する方法を理解するのに役立つことを願っています。正確な使用法は、アプリケーションによって異なります。これは、自分で把握する必要があります。

于 2013-01-09T12:17:24.030 に答える
1

メールは、プレーンテキスト、html、またはマルチパート (テキスト + 添付ファイル)、マルチパート代替 (テキスト + html) などの可能性があります。各 BodyPart を繰り返し処理して、そのタイプを認識し、それに応じてコンテンツを取得する必要があります。この javamail FAQエントリが役に立ちます。ここ
で私の同様の質問も参照してください。

于 2013-01-09T14:27:22.140 に答える