[PHP-dev 96] Re: mb_send_mail()

Rui Hirokawa php-dev@php.gr.jp
Wed, 7 Nov 2001 07:23:37 +0900


廣川です。

CVSアカウントを持っている人ということですので、意見を少し。

mail() については、phorumとかの日本語化をした時に
少し不便を感じました。

mail()関数自体で日本語が使えるのがやはり便利だと思います。

ただし、国際化作業により既存のコードに副作用がでることは避けなくては
いけません。マルチバイト対応や国際化に対して理解のある人は
PHPユーザ全体でみたらまだ小数派のような気がします。

PHP-4.0.6におけるHTTP入力における文字コード変換は、php_treat_variables()に
埋めこむのが筋ですが、現在はコンパイル時に丸ごとこの関数
を上書きするようになっています。
このやり方だと国際化機能を有効にしてコンパイルしてもらう必要が
あるのでやや不便ですが、かといって、マルチバイト対応のコードを
元のコードにちりばめるのもなんだなと思います。
(何か良いアイデアがありましたら教えて下さい。)

mail()についても、ハンドラphp_mail()をコンパイル時に
マルチバイト対応版(例えばmb_mail()に)差し替えてしまえば
よいのではないかと思います。

configureに--enable-mbstr-trans-enc を指定したら有効になるように
することができます。
これなら比較的簡単で他の開発者にも反対はされにくいでしょう。

あとは、php_mail()自体にマルチバイト対応のコードを入れるやり方も
ありますが、こっちは自身ないです。
サンプルのコードを示して頂ければ、本家php-devで提案をするなどして、
検討したいと思います。

On Wed, 7 Nov 2001 00:49:15 +0900
"sgk" <sgk@ppona.com> wrote:

> かねもとです。
> 
> 最近いくつか、英語用のPHPアプリケーションの日本語化をやって
> いるのですが、その経験上、思うこと(日本語化っていっても、お
> 仕事じゃないし、てきとーなんですが)。
> 
> PHP4のmb_send_mail()で日本語のメールを送ることができますよ
> ね。これって、わざと、mail()関数のままで国際化するんじゃなく
> て、別の名前の関数にしたんでしたよね。でも、最近思うのです
> が、やっぱりmail()という名前のままで国際化機能が使えたらいい
> なあ、と、とても思います。
> 
> ほんとにこの国際化機能はパワフルで、php.iniに若干の設定を行
> うだけで、英語用のPHPアプリケーションで日本語が使えます。そ
> れだけに、メールの送信についてだけmb_send_mail()に変更する作
> 業が必要というのは、とてもつらいです。特に、PHPアプリケー
> ションの「日本語化」ではなく「国際化」を海外の人たちと共同で
> 行っている場合、mail()とmb_send_mail()を切り替えて呼び出すよ
> うなコードにしなきゃいけないのは、なかなか説明しづらいです
> し、わかってもらいづらいです。
> 
> たとえば、元来のコード変換無しのmail()関数を_mail()に名称変
> 更して、コード変換アリのをmail()という名称にする、ってのはど
> うでしょうね。
> 
> ご意見ください。
> 
> 実現性を検討してもらえませんか?>特にCVSアカウントを持って
> るひと。
> 
> よろしく〜。
> 
> 
> sgk
> 
> 
> _______________________________________________
> PHP-dev mailing list
> PHP-dev@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-dev


-- 
-----------------------------------------------------
Rui Hirokawa <rui_hirokawa@ybb.ne.jp>
             <hirokawa@php.net>