PHP4からPHP5へ移行していて、send_mail()ではまったので、メモしておく。
まず、これまでのコードはこんな感じ。
send_mail(“宛先”, “件名”, $body, $name, $address);
- 宛先はメールアドレス
- 件名は普通に日本語(スクリプト自体はEUCなのでそれ)
- $bodyはEUCのはず
- $nameはEUCで、氏名
- $address は、メールアドレス
第4、5引数は、こう書いておくとFromヘッダを適当に作ってくれていた。
今後は、以下みたいのをスクリプトの先頭付近に書く。
mb_language(“Japanese”);
mb_internal_encoding(“EUC-JP”);
php.iniに書けるらしいけど、個別に書く方が無難だろう。
僕はスクリプトをEUC-JPで書いていて、内部でも文字列をEUC-JPで扱っているのでこう書いたけど、今時書き始めるならUTF-8のがいいかも。
次に、メールの本文をISO-2022-JPに変換しないといけない様子。
$body = mb_convert_encoding($body, “ISO-2022-JP”);
そして、メールの送り方はこんな感じで。
そして、メールの送り方はこんな感じで。
mb_send_mail(“宛先”, “件名”, $body);
件名はよしなに扱ってくれているので、そのままで。
第4引数にオプションのヘッダ(Fromなど)を渡せるけど、ちゃんとした形で渡さないといけない様子。
今回のスクリプトは、そこまでの必要性は無かったので、ここは捨てちゃった。
# 間違いがあれば教えて下さい > 識者