通知メールの日本語化

dotProjectの通知メールはことあるごとに送られてくるから、よほど大きなプロジェクト・組織でなければ鬱陶しいけど、これが化け化けメールだったらさらに鬱陶しい。化け化けと言ってもsubjectだけだけど、気持ち悪いのには変わりがない。本文はちゃんと読めるから実害はないんだけど。

とりあえず解決方法はここに書いてあるとおり。

それでもちょこっと文字化けするので、完全日本語仕様のパッチ当てをしてしまった。ま、内輪で使う分にはこれで十分。classes/libmail.class.phpの if ( ( $AppUI->user_locale != 'en' || ( $this->charset && $this->charset != 'us-ascii' && $this->charset != 'utf-8') ) && function_exists('imap_8bit')) {
$subject = "=?".$this->charset."?Q?".
str_replace("=\r\n","",imap_8bit($subject))."?=";
}
$this->xheaders['Subject'] = $dPconfig['email_prefix'].' '.strtr( $subject, "\r\n" , " " );
}
を、以下のように// if ( ( $AppUI->user_locale != 'en' || ( $this->charset && $this->charset != 'us-ascii' && $this->charset != 'utf-8') ) && function_exists('imap_8bit')) {
// $subject = "=?".$this->charset."?Q?".
// str_replace("=\r\n","",imap_8bit($subject))."?=";
if ( function_exists ('JcodeConvert') ) {
$subject = "=?ISO-2022-JP?B?".base64_encode(JcodeConvert($title,0,3))."?=";
} else {
$subject = "=?ISO-2022-JP?B?".base64_encode(mb_convert_encoding($subject, "iso-2022-jp", "auto"))."?=";
}
$this->xheaders['Subject'] = $dPconfig['email_prefix'].' '.strtr( $subject, "\r\n" , " " );
}
書き換える。

これでようやく使えるレベルに日本語化されてきた。

コメントを残す

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