Subscribe:

2010/11/28

Roundcube0.4.1 送信時文字化け対応

愛用させていただいているWEBメールクライアントの「Roundcube webmail
インストール直後からメールを送信すると文字化けする。
受信メールの日本語表示に問題は無いので放置していたのだがそろそろ本腰をいれようとがんばったメモ


いろいろ調べてみるとUTF8に対応できない一部のWEBメーラーとかで文字化けしている事が分かった。
いちばん無難な文字コード「ISO-2022-JP」で送信すればなんとなく解決すると思う。

WEB設定やコンフィグファイルを眺めてみたがそれらしい記述は発見できずPHP内部を覗いてみる。


roundcubemail/program/steps/mail/sendmail.inc
[php num="210" highlight_lines="211,213" toolbar="false" font_size="110%"]
210 // set default charset
211 $input_charset = $OUTPUT->get_charset();
212 $message_charset = isset($_POST['_charset']) ? $_POST['_charset'] : $input_charset;
213 $message_charset = "iso-2022-jp";
214 $EMAIL_FORMAT_ERROR = NULL;
215 $RECIPIENT_COUNT = 0;[/php]

211行目で文字セットを取って来てPOSTデータがなければそのままの文字コードを使用しているみたいだ
で、この$_POST['_charset']ってどこから変数が飛んできているのか?いろいろ調べけどわからん??
まあ、使えればいいので213行目に強制的に文字コードを指定してやった!

送信テストも良好だしヘッダの文字コードも「iso-2022-jp」になっているので成功だと思う。
根本的に解決にはなってないしバージョンアップとかしたらダメだけど・・・またその時考えよう。


0 件のコメント: