mb_send_mail とか mb_encode_mimeheader とか

とりあえず覚書。
扱うプログラムのエンコードはUTF-8。
mb_send_mailを使ってメール送信する。
まず、確認すべきはmb_language();
“ja”を使いたいけど、デフォルトは”neutral”かも。
“ja”じゃなかったらmb_language(“ja”)する。
他への影響が怖いような場合なら、
$def_lan = mb_language();
てな感じで保持して、最後に戻そう。
次、mb_internal_encoding()。
これ重要。特に件名部分。
内部で扱う文字エンコードなので、mb_internal_encoding(‘UTF-8’)としちゃいそうなんだけど、
メール送信時はmb_internal_encoding(‘ISO-2022-JP’)にしないとだめ。
mb_encode_mimeheader()やmb_send_mail()を使う場合、
この内部エンコードが使われるようで、
ISO-2022-JPにしとかないと、
件名の最後の方だけ文字化けしたりする。
本文には影響なしぽい。
で、メール送信した後は、
mb_internal_encoding(‘UTF-8’);
で戻しておこう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です