Aipoと電子メールあれこれ
(コメント: 0)
グループウェアのAipoが暫く前にpkgsrcに入っていてローカルな環境で試してみた。
- ぱっと見た感じは格好いい、多くの機能が用意されている。
- Javaベースということで、何かあったときに面倒を見るのは(自分自身のスキルからして)厄介そう。
数少ない、オープンソースの下に公開されている意味で貴重な国産のグループウェアだが、ウェブメールの機能も付いていたので少しテストメールを送ったところ、すぐに問題があることに気が付いた。
今時のソフトウェアなのでウェブページなどはUTF-8の文字エンコーディングで、それはそれで問題ない。電子メールについては残念なことにISO-2022-JP決め打ちで、少なくとも電子メールを送信するときにUTF-8の文字エンコーディングを選択できない、少し残念。
試しに電子メールを送信してみるとHTMLを含んだだけではなく、テキストだけの電子メールも送信できる、これはよろしい。ところが、テキストだけの電子メールのヘッダーを眺めてみると、
Content-Type: text/plain
と、まさかのcharsetパラメーターなしのContent-Typeフィールドである。世の中の電子メールを読むツールやウェブメールの大半は問題ないだろうけれど、これでは本文はUS-ASCIIの文字エンコーディングだけという指定になってしまい、それを忠実に解釈するツールでいわゆる「文字化け」が起きても文句は言えない。
Google Codeにプロジェクトがあるので、そこでIssue 849として登録しておいたが、そろそろ2週間経つけれども状態はNewのままである。
さらにIssueを眺めていると、Issue 473には「UTF-8のメールの場合、対応していないSMTPサーバーが経路に存在してしまうとまずいので」というコメントが入っている。うーん、電子メールの仕組みについて十分に理解されずにウェブメールを実装したのだろうか。
また、ユーザーコミュニティを見ていると、やはり不満を持っている方も少なくないようだ。
- ウェブメールで日本語の文字エンコーディングがISO-2022-JP(いわゆるJIS)で固定でUTF-8などを選択できない。
- 受信した電子メールのメッセージにJIS X 0208で規定されていない文字(いわゆる機種依存文字)が含まれていると正しく表示できない。
- Android端末に送信すると文字化けする。
ソースコードをちらっと見ると、1.はベッタリとISO-2022-JPを前提とした実装になっているので、大幅に再実装しないと難しいのではないかと思う。
2.については完全に確認したわけではないけれど、iconvベースな文字エンコーディングの変換をしているなら、純粋なISO-2022-JPではなく、機種依存なCP50220としてデコードするといった工夫が必要となる。
3.は最初に書いたcharsetパラメーターが存在しないことと関係するかもしれないけれど、そうではないかもしれない。
なお、Issue 849で報告した修正を加えて作成しなおしたクラスファイルをダウンロードできるようにしてある。以下のような手順で使用できる。
- aipo-mail-20121214.zipをダウンロードする。
- 展開すると
aipo-lib-mail-7.0.2.jar
というファイルが取り出せる。 - Aipoをインストールしているディレクトリ以下、
webapps/aipo/WEB-INF/lib/aipo-lib-mail-7.0.2.jar
というファイルをどこかにコピーしてバックアップする。 - 2.で取り出したファイルを
webapps/aipo/WEB-INF/lib/aipo-lib-mail-7.0.2.jar
にコピーする。
なお、このファイルの内容や使用した結果について一切の保証はしない、ご了承されたい。
最後にAipoをオープンソースで公開していくのは、いろいろ大変だと思うけれど頑張って欲しい、本当に。
Copyright © 2011-2024 Takahiro Kambe all rights reserved.
コメント
コメントを追加