メールフォームみたいなのを作って、メールを送信したいと思って作成していたら、文字化けで引っかかった。基本的にテキストメールの受信だけでよかったので、PHPのmail関数を使う。
mail関数は、以下のようなやり方。
なので調べていたら、なーんだマルチバイト版あるんじゃん。ってことで、mb_send_mail関数を使う。
使い方はほぼ同じ。
返信用のメアドを登録してもらって、それも加味させる。上記mb_send_mail関数の引数にひとつ追加。
とあった。
ということで、今回プログラム自体は、UTF-8で書いているので、
そしたらうまくいった。なるほどー。これでメールアンケート系の送信はホニョニョってできるな。
mail関数は、以下のようなやり方。
mail("あて先","タイトル","本文");これで送ったら、日本語のやつがバケバケのバケラッタ。(ふるい)
なので調べていたら、なーんだマルチバイト版あるんじゃん。ってことで、mb_send_mail関数を使う。
使い方はほぼ同じ。
mb_send_mail("あて先","タイトル","本文");ちょっとここで、「あーそういえば、返信できるようにしないといけないなー」ってことで、
返信用のメアドを登録してもらって、それも加味させる。上記mb_send_mail関数の引数にひとつ追加。
mb_send_mail("あて先","タイトル","本文","ヘッダ情報");これでOK。・・・のはずだったけど、思いのほか、文字化けの魔術にはまる。うー。どうしたらいいもんだ?ってことでネットを走る。だだだだっと。
文字コードEUC-JPで書いたスクリプトであれば、
mb_language("Japanese");
mb_internal_encoding("EUC-JP");
SHIFT-JISで書いたスクリプトであれば、
mb_language("Japanese");
mb_internal_encoding ("SJIS");
UFT-8で書いたスクリプトであれば、
mb_language("Japanese");
mb_internal_encoding("UTF-8");
と記述。
サーバー側のデフォルトはEUC-JP。何も設定しないと、この値が設定。
とあった。
ということで、今回プログラム自体は、UTF-8で書いているので、
mb_language("Japanese");と、mb_send_mail関数の前に記載。
mb_internal_encoding("UTF-8");
そしたらうまくいった。なるほどー。これでメールアンケート系の送信はホニョニョってできるな。
