1.)これは私のアプリケーションの1つからのものです(これも他の誰かのコードに基づいていますが、クレジットを与えることができませんでした)。
ご覧のとおり、Partオブジェクトを再帰的に処理しています(最初は実際にはメッセージです)。
関係のないコードをいくつか削除しました。
private BodyPartDOM collectBodyParts(Part part) throws IOException, MessagingException {
BodyPartDOM dom = new BodyPartDOM();
Object content = part.getContent();
if (content instanceof String) {
// process as string
} else if (content instanceof Multipart) {
Multipart innerMultiPart = (Multipart) content;
int count = innerMultiPart.getCount();
for (int i = 0; i < count; i++) {
BodyPart innerBodyPart = innerMultiPart.getBodyPart(i);
BodyPartDOM subDom = collectBodyParts(innerBodyPart);
// further recursive processing
}
} else if (content instanceof InputStream) {
// process inputStream
}
return dom;
}
2.)文字列に変換する場合は、先に進んでください。ただし、たとえばファイルストリームには注意してください。
コンテンツタイプのmimeタイプを確認できます。これが役立つウィキペディアからの情報です(http://en.wikipedia.org/wiki/MIME#Content-Type):
Content-Typeこのヘッダーは、メッセージコンテンツのインターネットメディアタイプを示します。たとえば、タイプとサブタイプで構成されます。
Content-Type:text / plainマルチパートタイプを使用することにより、MIMEでは、リーフノードが非マルチパートコンテンツタイプであり、非リーフノードがさまざまなマルチパートのいずれかであるツリー構造にパーツを配置することができます。タイプ。このメカニズムは以下をサポートします。
text / plain(「Content-Type:」のデフォルト値)テキストと添付ファイル(マルチパート/テキスト/プレーン部分およびその他の非テキスト部分との混合)を使用した単純なテキストメッセージ。添付ファイルを含むMIMEメッセージは、通常、ファイルの元の名前を「Content-disposition:」ヘッダーで示します。したがって、ファイルのタイプは、MIMEコンテンツタイプと(通常はOS固有の)ファイル拡張子の元の応答の両方で示されます。添付(マルチパート/テキスト/プレーン部分と元のメッセージをメッセージ/ rfc822部分として混合)プレーンテキストとHTMLなどの別の形式(テキスト内の同じコンテンツを持つマルチパート/代替)の両方で送信されるメッセージなどの代替コンテンツ/plainおよびtext/htmlフォーム)画像、音声、動画、アプリケーション(たとえば、image / jpeg、audio / mp3、video / mp4、
これを実践する方法については、
http ://www.oracle.com/technetwork/java/faq-135477.htmlを参照してください。
ハッピーコーディング!