2

WebEngine (javafx) という名前のコントロールを使用して、javamail によってダウンロードされたメール コンテンツを表示します。コンテンツがプレーン テキストまたは画像 src=http リンクを含む html の場合は問題ありませんが、メールに画像が埋め込まれている (src にコンテンツ ID がある) 場合、コントロールはこの画像を表示しません (もちろん、どこにあるかわからないため)。電子メールを表示するための最適なコントロールは何ですか? メモリに画像を保存するときのやり方。WebEngine でメールをロードするのは良い考えではないかもしれません...

4

2 に答える 2

1

「cid」URL プロトコルを処理し、MIME メッセージの適切な部分からデータを提供するURLStreamHandlerが必要です。URLStreamHandlerFactory を作成し、 URL.setURLStreamHandlerFactory メソッドを呼び出して、 URLStreamHandlerを構成する必要があると思います。私が覚えているように、秘訣は、デフォルトの URLStreamHandlerFactory を取得して、他のすべての URL プロトコルのデフォルト バージョンに委任できるようにする方法がないことです。

または、すべての添付ファイルをディスクに保存し、表示前に html コンテンツを処理して、すべての cid: 参照を file: 参照に変換することもできます。

于 2012-09-14T23:58:45.707 に答える
0

私の推測では、WebEngine は、受信メールで処理しようとしているメッセージなど、マルチパート MIME でエンコードされたメッセージをデコードおよび表示していません。私の記憶が正しければ、IE のような一部のブラウザーは、マルチパート MIME でエンコードされたメッセージも処理しませんでした (そしておそらくまだ処理していません)。

できることは、Mime4Jなどを使用して自分でマルチパート メッセージをデコードし、マルチパート メッセージから取得したデコードされた MIME タイプに基づいて、デコードされたコンテンツ パーツをコントロール (または必要な外部アプリ) に表示することです。

于 2012-09-14T22:37:40.797 に答える