• 締切済み

PHPメールフォームでの文字化け

プログラミング&PHP超初心者です。 PHPでメールフォームを作成して、送信には成功しましたが、受信したメールが文字化けしています。 いろいろ調べたのですが、解決できませんでした。 どなたか詳しいかた、教えていただけると嬉しいです。 送信する部分: if ($name != \"\" and $from != \"\" and $title != \"\" and $naiyou != \"\" ) { if (mb_send_mail($to, $title, $naiyou, \"From:$from\")) { echo \"メールを送信しました\"; } else { echo \"メール送信失敗です\"; } 文字コードはEUC-JPです。 サーバーはロリポップです。 よろしくお願いいたします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

確実にやるにはmb_send_mail()ではなくmail()のほうがよいでしょう 本文は7bit jisにエンコードし、その他はさらにmb_encode_mimeheader()してください。

tama-2009
質問者

お礼

サーバーのphp.iniの設定で解決しました。 ありがとうございました。

tama-2009
質問者

補足

さっそくのご回答ありがとうございます。 すみません、超初心者なもので、記述の仕方がわかりません。 もし、よければどのあたりにどう記述したらいいか、教えていただけると嬉しいです。

回答No.1

メールで使用される日本語文字コードはISO-2202JPと定められています。 送信する文字データをすべてISO-2202JPにコンバートしてください。

tama-2009
質問者

お礼

サーバーのphp.iniの設定で解決しました。 ありがとうございました。

tama-2009
質問者

補足

さっそくのご回答ありがとうございます。 >ISO-2202JPにコンバート すみません、やりかたがわかりません…。 ちなみに、受信したメールのヘッダを見ると Content-Type:text/plain; charset=UTF-8 Content-Transfer-Encoding:BASE64 となっています。 関係あるのかな?