noshi’s diary

ゲームの事、映画やドラマ、思いついた事、プログラミングの事、雑記的なことを書いています

mb_send_mail メール送信

mb_send_mailで送信したメールが文字化けが発生。 文字化けが発生したスクリプトは、 $to = "hoge@gmail.com"; $subject = "テスト"; $message = "これはテストメールです。"; $header = "From: huga@huga.com"; mb_send_mail($to,$subject,$message,$header); 不可解なのは、テスト環境だと文字化けが発生せず、本環境だと文字化けが発生することである。 さらに不可解なのは、このスクリプトはcronjobに登録せずにそのまま素直に実行すると文字化けが発生せず、cronjobに登録して実行すると文字化けが発生する点。 原因はいろいろ考えられるが、上記スクリプトは日本語へのエンコードなしにメールを送信している。 サーバー環境の違いで文字化けの有無が生じるならば、日本語にエンコードする関数を設定してやれば解消されるではと期待し、次の関数を設定してみる。 $to = "hoge@gmail.com"; $subject = "テスト"; $message = "これはテストメールです。"; $header = "From: huga@fuga.com"; mb_language("Japanese"); mb_internal_encoding("UTF-8"); mb_send_mail($to,$subject,$message,$header); そして、おもむろに上記スクリプトphpファイルをcronjobに登録し、定時にメールを送信させてみた。 文字化けせずにメールがきました。とりあえず解決かな。