mb_send_mail と mail 関数の違い[PHP]
mb_send_mail と mail 関数の違い
hostinger ではセキュリティ上 mb_send_mail関数が使えない
ようなので、メモ。
mb_send_mail()関数
mb_send_mail — エンコード変換を行ってメールを送信する
説明
bool mb_send_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $additional_parameter = NULL ]] )
email を送信します。ヘッダと本文は mb_language() の設定に基づき変換、エンコードされます。 これは mail() のラッパー関数です。詳細は、 mail() を参照ください。
通常使う場合は、自動でエンコーディングしてくれるので、mb_send_mail関数でいいかと。中でmail関数を呼んでいるようです。
mail()関数
mail — メールを送信する
説明
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
メールを送信します。
mail関数では、自動でエンコーディングをしてくれないので、日本語を使う場合文字化けが起きるようです。 しかし、以下のように書いたところ、hostingerでは文字化け無しでメールを送れました。
mb_language('Japanese');
mb_internal_encoding('UTF-8');
// mb_send_mail($to, $subject, $message);
mail($to, $subject, $message);
日本語のメールを送信する - メール送信(PEAR::Mail) - PEAR入門 では、mb_convert_encoding 関数を使って、手動でエンコーディングしてますが、必要ないのかな?いまいち上記の関数が効いているのか、hostinger ではphp.ini あたりで設定されているのかよくわかりませんが、文字化けなしで送れました。