サイボウズOfficeでUTF-8のメールを読む – DeleGateで文字化け対策

2009年5月25日追記
サイボウズOffice8ではUTF-8のメールが読めるようになっていました。
コメントで教えていただき、確認したところたしかに読めるようになっていました。ありがとうございました。
このエントリ後にバージョンアップしたときに、リリースノートは読んだはずなんですが、そんなこと書いてあったかなあ。
メールのソースを見るとヘッダはUTF-8のままで文字コード変換して表示しているようですね。ちょっと気持ち悪いですが、まあ読めないよりはずっといいです。

職場ではサイボウズを使っている。最近はUTF-8のメールがちょこちょこ届く。サイボウズはUTF-8のメールを受信すると文字化けするんですよ。
http://cbdb.cybozu.co.jp/cgi-bin/db.cgi?page=DBRecord&did=843&vid=116&rid=10
頻繁ではないけれど、読めないと困るものが結構ある。ブラウザでソースを見るのも疲れてきた。ずーっとサイボウズの対応を待っていたのだけれど、ぜんぜんそんな気配もない。暮れも押し迫って大きな作業もできないこのタイミングで、なんとかすることにした。

まあDeleGateを動かすだけなんだけれど。

pop-proxy.example.comというホストにDeleGateをインストールして、

./delegated -P110 SERVER=pop://pop.example.com CHARCODE=iso-2022-jp

とrootで起動すると、/var/spool/delegated-nobody/以下にログやもろもろが作成される。
pop.example.comは実際のPOPサーバのホスト名で、CHARCODE=iso-2022-jpで受信時に文字コードをiso-2022-jpに変換するという設定。
次にサイボウズ側でメール受信POPサーバの設定を、pop.example.comからpop-proxy.example.comに変更して、あとは普通に受信する。

GmailからUTF-8のメールを送ってみたり、http://www.codegear.com/ から届くメール(ここからのメールはいつも読まずに捨ててたのだけど)を再送して受信してみたり。上手くいってる感じ。懸案だったGroupWiseを使っているお客さんから届くUTF-8メールもちゃんと読めるようになった。

が、残念ながらredmineから届く通知メールは、ボディはちゃんとiso-2022-jpになるけれど、サブジェクトだけがUTF-8のままで文字化けしている。サブジェクトのquoted-printableエンコードがどうもおかしいみたい。DeleGateのCFIフィルタを書いて、サブジェクトのエンコードを自前でiso-2022-jpにするようしてはみた。解決なのだけれど、なんだか割に合わない気がする。redmineは、まあそのうち直るだろう。

問題はサイボウズ。本来ならば、サイボウズ自体のPOPクライアントでDeleGateみたいな文字コード変換機能を作り込むべきだと思う。
既存のデータベースのメンテを気にして対応しないのは間違ってる。こういう方法ならば既存データにも影響はないし、結構簡単に実装できるはず。DeleGateのソースも参考にできる。少なくともオープンソースならばとっくに対応されているだろうと思う。

このままUTF-8のメール受信対応されないと、新規導入の大きな障害になると思うのだけど。少なくとも、僕は今なら新規では導入しないな。ただ、導入してしばらく経たないと、これが問題だということにも気づかないかもしれない。

One comment

  • なまえ
    2009年5月26日(火曜日) - 01:02 | Permalink

    サイボウズ Office 8でやっとUTF-8に対応になりましたね。。やはり要望が多い要件だったんですね。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    *

    次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>