PHPを独学するなら、Udemyの動画講座で
PHP 7も使えて快適な エックスサーバー

mb_send_mail関数で送信したメールが文字化けする主な原因は次のようなものがあります。

  • 内部処理で使う文字コードが設定されていない
  • メールの言語(日本語)が設定されていない
  • 送信者やCCの日本語がエンコードされていない

それぞれについて説明します。

1. 内部処理で使う文字コード → mbstring.internal_encodingで設定

mb_send_mail関数で送信したメールが文字化けする場合は、php.iniのmbstring.internal_encodingの設定が原因かもしれません。たとえば、スクリプトの文字コードがUTF-8で、php.iniのmbstring.internal_encodingがEUC-JPの場合は、mb_send_mail関数で送信したメールは「???????」のように文字化けします。

解決方法として、php.iniのmbstring.internal_encodingの設定を変更するか、次のようにmb_send_mail関数(を含むマルチバイト関数)を使う前にmb_internal_encoding関数で文字コードを設定する方法があります。スクリプトの先頭や共通関数ファイルに記述しても良いでしょう。

mb_internal_encoding("UTF-8");
$rc = mb_send_mail(…);

2. メールの言語(日本語) → mbstring.languageで設定

それでも文字化けする場合は、mbstring.languageという設定項目を確認しましょう。mb_send_mail関数を使って日本語のメールを送信する場合は「Japanese」に設定する必要があります。

mbstring.language = Japanese

mb_language関数を使うこともできます。

mb_language("Japanese"); 

※「mb_language("ja");」でも大丈夫です。

まぎらわしいですが、mb_language関数やmbstring.languageはメール送信に使う言語の設定であり、マルチバイト関数全般で使う文字コードの設定はmb_internal_encoding関数やphp.iniのmbstring.internal_encodingで行います。

3. 送信者名やCCで指定する日本語はmb_encode_mimeheader関数でエンコードする

送信するメールに送信者名やCCする人の名前を含める場合、次のように日本語をエンコードしないで実行すると、文字化けします。

<?php
mb_language("ja");
mb_internal_encoding("UTF-8");
$to = "xxxxx@xxxxx";
$title = "テストメール";
$body = "メール送信のテストです。";
$header = "From: 西沢直木 <xxxxx@xxxxx>\n";
$header .= "CC: 鈴木次郎 <xxxxx@xxxxx>\n";

mb_send_mail($to, $title, $body, $header);
?>
送信者名の日本語が文字化けする

送信者名の日本語が文字化けする

送信者名やCCで指定する日本語はmb_encode_mimeheader関数でエンコードします。

<?php
mb_language("ja");
mb_internal_encoding("UTF-8");
$to = "xxxxx@xxxxx";
$title = "テストメール";
$body = "メール送信のテストです。";
$header = "From:" . mb_encode_mimeheader("西沢直木") . "<xxxxx@xxxxx>\n";
$header .= "CC:" . mb_encode_mimeheader("鈴木次郎") . "<xxxxx@xxxxx>\n";

mb_send_mail($to, $title, $body, $header);
?>
文字化けが解消される

文字化けが解消される

それでも文字化けする場合は、mb_encode_mimeheader関数で指定する文字列の文字コードと、mbstring.internal_encodingの設定を同じにしてみてください。

スポンサーリンク

こちらもどうぞ

こちらも参考にしてください

関連記事

MySQL

phpMyAdmin

PHPサンプルコード

PHP全般

WordPress

エラーメッセージ

PHPの基礎が身に付いたかチェック!

PHP「直す力」養成ドリル
スポンサーリンク