PHP5で日本語のメールを送る
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など)を渡せるけど、ちゃんとした形で渡さないといけない様子。 今回のスクリプトは、そこまでの必要性は無かったので、ここは捨てちゃった。 # 間違いがあれば教えて下さい > 識者