PHPのメールフォーム送信後、届いたメールの内容が文字化け | 祝!個人事業主。様々な副業に関する情報をお届けします。

祝!個人事業主。様々な副業に関する情報をお届けします。

自分みたいな中途半端な人間でも生活できるんです。個人事業主で収入を上げながらも、副業やギャンブル(スロット中心)で生活費を稼ぐダメ人間のブログです。

様々なPHPの参考書があると思います。。。

私の購入した参考書はアメリカ人の書いた参考書の翻訳なので

日本語表記については何も書かれていませんwww

ってか翻訳した人も日本人向けに発売するなら確かめて欲しかった。

で、いきなり詰まったのは

メールフォーム送信後に送られてくる文章がメールソフトで文字化けする件について
php.iniの【文字コードの設定】は完了している・・・はずです(汗)
参考書には・・・
<?php//start building the mail string
$msg  = "Name:    ".$_POST['name']."\n";
$msg .= "E-Mail:  ".$_POST['email']."\n";
$msg .= "Message: ".$_POST['message']."\n";

//set up the mail
$recipient = "you@yourdomain.com";
$subject = "Form Submission Results";
$mailheaders  = "From: My Web Site <defaultaddress@yourdomain.com> \n";
$mailheaders .= "Reply-To: ".$_POST['email'];

//send the mail
mail($recipient, $subject, $msg, $mailheaders);
?>
調べてみると
mail関数→mb_send_mail関数に変更。
次が重要。
mb_internal_encoding("UTF-8");
で先にエンコードしてあげる文字コードを宣言しろとの事でした。
念の為にメールの言語を日本語に設定しました。
<?php//start building the mail string 
mb_language("japanese");
mb_internal_encoding("UTF-8")
$msg = "Name: ".$_POST['name']."\n";
$msg .= "E-Mail: ".$_POST['email']."\n";
$msg .= "Message: ".$_POST['message']."\n";

//set up the mail
$recipient = "you@yourdomain.com";
$subject = "Form Submission Results";
$mailheaders = "From: My Web Site <defaultaddress@yourdomain.com> \n"; $mailheaders .= "Reply-To: ".$_POST['email'];

//send the mail
mb_send_mail($recipient,$subject,$msg,$mailheaders);
?>
上記の方法だけで私は治りました。
mail関数でも同じ方法を試しましたがmail関数はまだ文字化けしていました。
もしかしたら私のエンコード設定が悪いのかもと見直しましたが間違いが分からないので放置します。何かあればそのうちに出てくるはずw
色々と調べてみると差出人、宛先、件名もmb_encode_mimeheader関数で日本語をエンコードすると文字化けするそうです。 その時にも
mb_internal_encoding("UTF-8");※私はPHPをUTF-8で保存してますので
がないことが原因だそうです。 本当にPHPの関数って多すぎて覚えられませんね・w・