ユーザからの問合せフォームを作り、PHP(4.4.2)から自分のメールアドレスにメールを飛ばすプログラムを開発していた。
宛先は、gooのメールアドレス。関数は一番シンプルなmail関数。
mail("宛先@goo.jp","メールタイトル" , $body, "From: 送信元");
$bodyは、formから$_REQUESTで持ってきた値。
結果…メールタイトルが文字化け。
そこで、メールタイトルの文字コードを変更してみる。
$subject = "メールタイトル";
$subject = base64_encode($subject);
$subject = mb_convert_encoding($subject,"ISO-2022-JP","UTF-8");
$subject = "=?ISO-2022-JP?B?" . $subject . "=?=";
mail("宛先@goo.jp",$subject , $body, "From: 送信元");
再度実行してみるがやはりダメ。別のメール宛先にしてみて、アウトルックで受信すると、文字バケしていない。
そういえば以前、Windowsでメルマガ送信システムを開発していた時、 Gooメールだけ文字バケしていたので、処理方法を変更した事を思い出した。また、Gooメールは文字化けしたメールも時々届く。他のメーラーよりも文字コードが厳密なのだろうか。
色々試してみるが結局ダメだったので、とりあえず保留。メール受信じゃなくて、問合せをWEB上で確認するようなシステムにしても良いかも。
でも、悔しいな。解決したいな。
ブログ作者の開発サイト http://miu2.net/ もよろしく。