IlohaMailのUTF-8メール対応

RoundcubeMailも見た目はカッコいいし、洗練されたインターフェースは非常に魅力なんだけど、新着チェックや動作がキビキビしていないところなんかはちょっと不満。と言うことで、SquirrelMailもやっぱりインストール(普通に # yum install squirrelmail)して、文字化けが直っていることに驚いた。それでも「月月」と表示されるのは健在だけど。。。

いっそのことだから、前から気になっていたIlohaMailもついでだから入れてみた。インストールは付属のテキストで簡単に導入できるけど、困ったことに日本語がEUC-JPが前提となっていて、UTF-8は(日本語としては)サポートしてない。普通に使っている分には問題ないけど、UTF-8なメールを返信や転送するときに見事に化けてしまう。

UTF-8なFCとしては、なんとかIlohaMailをUTF-8対応にしようと頑張ってみたけど、IlohaMailのlocaleの考え方がいまいちよく分からなかったから、EUC-JPのままにして、UTF-8なメールの返信に対応することにした。

これは以外にあっさり片付いた。

まず、lang/jp/jcode.incをここから最新のjcode.phpを取ってきて、jcode.incとリネームする。元々のjcode.incはリンク先のTOMOさんのUTF-8非対応版をそのまま使っているようだから、UTF-8対応版と取り替える。

次に、lang/EUC-JP.incの先頭近くに$CS_CAN_CONVERT["UTF-8"]=1;を追加する。$CS_CAN_CONVERTがずら〜っとならんでいるところの頭に追加する。

そして、include/compose_fetch_ref.incの最後の方に、 $message=LangConvert($message, $my_prefs["charset"], $charset);
if (isset($replyto)) $message=">".str_replace("\n","\n>",$message);
$message = mb_convert_encoding($message, $my_prefs["charset"],"AUTO");
$message = "\n".LangConvert($message_head, $my_prefs["charset"], $charset).$message;
iil_Close($conn);
と、青字の部分を追加する。もちろん、PHPのmb_stringモジュールが入っていないといけないけど。

これでUTF-8メールも問題なく返信できるようになった。やれやれ。

コメントを残す

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