平衡点
2013/12/03
_ Roundcube のメールデコード
良く知られた話かもしれませんが...
世の中には機種依存文字というのがありまして, メールの文字コードは ISO-2022-JP と謳っていながら, その実丸囲み数字とかが存在する, というメールが飛び交っております.
単に自分が受ける側であれば,
なんかを参考に, 適宜設定しておくと良いのかもしれません(cc-env memo: Wanderlust の設定).
ウチ 某所サーバでは, WebMail のサービスとして Roundcube を提供しています. で, 飛び交うメールが偶に WebMail 上で読めない, という事態が発生していることに今更ながら気がつきました.
...という訳で, ad hoc ながら /usr/share/roundcube/program/lib/Roundcube/rcube_charset.php に手を加えてみます.
# source: diff --- rcube_charset.php.orig 2013-12-03 01:05:20.966192376 +0900 +++ rcube_charset.php 2013-12-03 01:06:28.031257391 +0900 @@ -229,6 +229,11 @@ // convert charset using mbstring module if ($mbstring_list !== null) { $aliases['WINDOWS-1257'] = 'ISO-8859-13'; + $aliases['JIS'] = 'ISO-2022-JP-MS'; + $aliases['ISO-2022-JP'] = 'ISO-2022-JP-MS'; + $aliases['EUC-JP'] = 'EUCJP-WIN'; + $aliases['SJIS'] = 'SJIS-WIN'; + $aliases['SHIFT_JIS'] = 'SJIS-WIN'; // it happens that mbstring supports ASCII but not US-ASCII if (($from == 'US-ASCII' || $to == 'US-ASCII') && !in_array('US-ASCII', $mbstring_list)) { $aliases['US-ASCII'] = 'ASCII';
...こんなんで良いのかなぁ.
mbstring で JIS, ISO-2022-JP, EUC-JP, SJIS, SHIFT_JIS を扱う際に, Roundcube 内で global に alias を定義しておくと良いのかもしれませんが, あんまりコード眺めてないので対応がこれで良いのか定かではありません. 誰か教えて下さい.
あ, 対応する Roundcube の version は 0.9.5-1~bpo70+1 です.
にんともかんとも.