[PHP-dev 1176] Re: PHP-5.0.5 mb_send_mail() Bug
Tadashi Jokagi
ml @ elf.no-ip.org
2005年 9月 30日 (金) 18:17:47 JST
ぢょ〜@よくきたなです.
#dev じゃなくなってきてる気もしますが
J.Kuwamuraさんの「[PHP-dev 1175] Re: PHP-5.0.5 mb_send_mail() Bug」から
>> このヘッダーって mb_send_mail() が有無を言わさず付加しませんか?
>> もしかしたら多重になってるかもしれません.
>
>重なりはしなかったですが、確かに不要でした。結局、mail()のかわりに
>mb_send_mail() にするだけでした。
若干嘘をついていました.重複するケースは mb_internal_encoding()
と mb_send_mail() に与える文字列の文字エンコードが異なる場合,
自前で全てのヘッダーの MIME エンコードは mb_encode_mimeheader()
で実装,さらに UTF-8 な本文なので
「Content-Type: text/plain; charset=UTF-8」を追加し,
mb_send_mail()を実行すると,
「Content-Type: text/plain; charset=ISO-2022-JP」を追加されてしまっ
た.という経験でした.実際の本文がどっちのエンコードになったかは覚
えてませんが;-(
J.Kuwamuraさんの「[PHP-dev 1175] Re: PHP-5.0.5 mb_send_mail() Bug」から
>--
>$internal_encoding = mb_internal_encoding();
>$detect_encoding = mb_detect_encoding($message);
>$message = mb_convert_encoding($message, $internal_encoding, $detect_encoding);
>--
>でしょうか。mb_send_mail() ではやってくれないかなあ?
># おっと, mb_detect_encoding()って "AUTO" でしたっけ,
># 決めうちしたほうが良いのかな。
>--
普通どうするのか分からないですが,
#php.ini で済ませる人が多いのでむしろ分かりたくないのですが(笑
デフォルトの php.ini から ini_set() なりそれなりの関数で自分の
必要な環境はなるべく設定しておくのが経験上はいろんな環境で動かす
ときに楽だなーと思いました.また,.htaccess に記述する場合も,
そのサーバーが .htaccess をサポートしているかどうか(php_value な
どをサポートしているかどうか)という調査をしなければいけないことも
面倒なので避けるようになりました.
#大体構築依頼をしてくる人はその辺理解ができないので「上鍵さん代わりに
業者に聞いてください」とかになってしまうパターンがあるなどから.
かといって ini_set() などできないものもあるので,PHP の設定に依
存しない実装もあわせて必要になってくると考えています.例えば
allow_url_fopen は .htaccess/ini_set() で設定できないので)fopen()
で URL 指定な実装はそもそもしない.などなど.
また,海外のオープンソースアプリケーションばかり使ってるから(通
常 mbstring なんてしったこっちゃない)よけい php.ini に依存しない実
装を好むようになったのもあると思います,
--
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Shibuya city mailto:elf @ elf.no-ip.org
YokukitanaII http://elf.no-ip.org/
Yokukita blog http://blog.poyo.jp/
Yokukita wiki http://wiki.poyo.jp/
PHP-dev メーリングリストの案内