Multipart/AlternativeなメールのHTML表示に成功

いわゆる典型的なHTMLメール、テキストとHTMLで同じ内容を送る形のメールのHTMLパートだけをHTMLビューで表示することに成功した。
改造点は以下の通り。
・ビューマッピングでContent-Type=Multipart/AltanaveにHTMLView(自作)を関連付け
・HTMLViewで表示内容を出力するところで分岐。マルチパートかどうかで判断。マルチパートでなければ従来通り単一パートのtext/htmlの処理を行う。
・マルチパートできた場合は、パートごとに判別を行い、text/htmlパートだけを抽出、そのパートに対して出力処理を行う。
最後の、抽出後の出力がなにげに苦労した。抽出までは、サンプルのソースのMessageViewerで添付ファイルの処理がそのまま使えたのだが、分割したパートをどう使うかがわからなかったのだが、結局、マルチパートで来ようが来まいが、すべては「Part」Interfaceで処理できることがJavadocを読んでわかったので処理が単純化できた。
ここまでできると単純に読むだけの機能はほぼ揃ったことになる。添付ファイルの保存とか、未読数の表示くらいだろう。
ちなみにHTMLメールの表示ではセキュリティを一切考えていないが、SwingコンポーネントではJavaScriptやflashが実効できないうえ、外部プログラムの起動も普通ではできないから問題はないと考えている。

コメント