このブログにしてはなかなかキャッチーなタイトルです。
JavaMailは現在バージョン1.4。1.1のリリースから10年近く経ちますが、本質的な機能は変わっていません。
つまり(かなりアクロバティックな展開ですが)JavaMailの本質は10年ほど変化していないのです。
言い換えると、
1.JavaMail 1.1 のリリースが10年近く前
2.JavaMail 1.4 と 1.1 の機能は本質的には変わっていない
3.ゆえに JavaMail 1.4 の機能は本質的には10年ほど変わっていない
すばらしく乱暴な展開ですが、私は結構確信を持ってこれを書いています。
なぜ確信を持っているか。
それは、JavaMailが依然としてクラサバ型のメールクライアントを意識した仕様だからです。
なぜそう思うか。
Folderがメッセージをキャッシュすべきである、とか、そもそも「フォルダー」という概念がクラサバチックなのです。
Swingで作るメールクライアントならFolderがメールをキャッシュするのもよいでしょう。しかしServletではどうするか。Folderがメールをキャッシュしたところで、じゃあそのFolderをどこにキャッシュするのか。FolderはSerializableではない(javax.mail.Messageすらも!)のでSessionにPUTすることはできません(してもいいけど仕様に反する)。じゃあServletContext??それは何だかみっともないなあ。
それからgmailやdel.icio.usで採用されているような(「フォルダ」という概念ではなく)「タグ」という概念が、JavaMailでは実装不可能であること。つまり「フォルダ」という概念をそのまま「javax.mail.Folder」に落としてしまったという痛恨のミス。これらがJavaMailが5年以上前のレベルにとどまっている証拠だと私は思うのです。
3層Webアーキテクチャ(というのも古い言葉なのかな)でメールシステムを作るとすれば、JavaMailの仕様は結構無視してしまうしかない、と私は確信するものであります。
かなりマニアックな話題を中途半端に終わらせるのもなんですが、以上です。
0 件のコメント:
コメントを投稿