JavaMailでメーラを作ってみる

久しぶりにプログラムを書きたくなったので、Javaをやる。で、使えるものを作りたいと思い、Swingでブラウザかメーラでも作るかと思い、手始めにJavaMailをダウンロードしてみた。
サンプルに、SwingアプリケーションのIMAPクライアントが含まれているので、すぐにコンパイルして実行できるし、自宅サーバにIMAPサーバはあるからドウサもさせられるのだが、サンプルだけあって完全ではない。
1.Fromがデコードされない
2.フォルダの「購読」が認識されない
3.本文の日本語が表示されない
1はJavaMailのAPIでFromを取得するときの仕様らしいのだが、From(Subjectも同様)全体がBase64エンコードされテイルとデコードされた文字列で取得できるのだが、部分的にエンコードされテイルとデコードしてくれないらしい.。Subjectはともかく、Fromは名前が日本語でメールアドレスが英数字、アドレス部はエンコードしないのが一般的だからこの様な動作になっていると思われる。Base64のデコーダはAPIにあるから、Fromのパーサを実装する必要がありそうだ.
2はIMAPの仕様が分かっていないからわからない。ただ、Thunderbirdで設定した購読フォルダがWebMailのSquirrerlMailに引き継がれたのでサーバ側に情報があると考えられる。APIがあるのかもしれない。調査が必要だ.
3は単純にヘッダの本文エンコードをみて、デコードしてから表示すれば飯井だけなのでそれほど手間ではないはずだ。表示前にエンコードを取得しておいて(決め打ちは危険なのでできない)バイト読み込みして出力(表示)してやればいいだけだろう。
ここまでできたらUIの実装とかメールの作成の実装などオリジナルの作成に移ろうかと考えている。

コメント