Seiji Sogabe
sogab****@alles*****
2005年 8月 21日 (日) 21:44:47 JST
こんばんわ、曽我部です。 Margy Mutoh wrote: > それで、php4.4.0とmbstringでググってみたら、こんなのが出てきました。 > http://ns1.php.gr.jp/pipermail/php-users/2005-July/026701.html > このスレッドを読んでいくと、「PHP4.4.0のmb_send_mail関数のバグでは > ないか?」という話がありました。 > そうだとすると、そのバグが修正されるまで対策はないのでしょうか? バグとして登録されていますね。 http://bugs.php.net/bug.php?id=33720 > とりあえず、「日本語の先頭に全角スペースを入れる」の回避策を > とりました。 > これでなんとか取り繕えてますが、根本的な解決にはなってないので、 > なにかご存じの方がおいででしたら、引き続きご指導よろしくお願い > いたします。m(_ _)m 根本的な解決はバグが修正されることですが、php-usersのスレッドに記述されて いるように、ISO-2022-JPに変換してからmb_encode_mimeheaderを使用すれば 文字化けしないようです。 admin/includes/classes/email.phpの444行目位を以下のように変更してみたと ころ、 わたしの環境では文字化けは発生しませんでした。 > if ($subject != '') { > $subject = mb_convert_encoding($subject, 'ISO-2022-JP'); > $subject = mb_encode_mimeheader ... (省略) > } > > $to_name = mb_convert_encoding($to_name, 'ISO-2022-JP'); > $to_addr = mb_convert_encoding($to_addr, 'ISO-2022-JP'); > $to = ($to_name != '') > ? ('"' . mb_encode_mimeheader(省略) > : $to_addr; > $from_name = mb_convert_encoding($from_name, 'ISO-2022-JP'); > $from_addr = mb_convert_encoding($from_addr, 'ISO-2022-JP'); 上記と同じように、catalog/includes/classes/email.phpも修正すれば、 バグが修正されるまではどうにかなるのではないでしょうか。 あまり、確認をしたわけではありませんが。 では。