以下のソースでメールを送信した所、
From欄は正しく表示されるのですが件名が
「=?ISO-2022-JP?B?GyRCJEkkJiRKJE4lMyUiJWkbKEI=?=」
のようになって文字化けしてしまいます。
mb_language("UTF-8");
mb_internal_encoding("UTF-8");
$from = ("From:").(mb_encode_mimeheader("猫大好きクラブ",'ISO-2022-JP')).("<sample@neko.com>");
$title= mb_encode_mimeheader("どうなのコアラ",'ISO-2022-JP');
$email = "user@neko.com";
$body = "ねこだいすき";
mb_send_mail($email,$title,$body,$from);
Fromの所と同じ処理をしているのになぜ件名だけが文字化けしてしまうのでしょうか。
また、どう直せば正しく件名が表示されるのでしょうか。
ご助言お願いいたします。
関数 mb_send_mail の subject に mb_encode_mimeheader を適用する必要はありません。内部エンコードされたテキストを渡すだけで十分です(必要に応じて関数 mb_convert_encoding を使って内部エンコード形式に変換すること)。
具体的なスクリプトは拙作「PHPでメール送信」をご覧ください。
解決しました!
ささいすぎるミスでお恥ずかしいです。
どうもありがとうございました。