[PHP-dev 701] Re: [PATCH] mb_send_mail() の拡張

Moriyoshi Koizumi php-dev@php.gr.jp
Tue, 18 Feb 2003 16:44:05 +0900


小泉です。

On Tue, 18 Feb 2003 07:04:30 +0900
Yasuo Ohgaki <yohgaki@ohgaki.net> wrote:

> 素晴らしい :)

ありがとうございます。
 
> パッチを見ただけですが、この仕様なら下位互換性を壊す事はないと思います
> し、もし壊れていたら直せば良いだけなのでコミットしても良いのではないで
> しょうか。

壊れているかどうか、という問題もありますが、ユーザーがどのような使い方を
しているのかすべて想定しきれていない、という点で不安もあります。
 
> # php-dev@list.php.netに投げてみる方が良いとは思いますが、
> # 前からmail()の追加ヘッダ引数に連想配列を使える様にすると便利
> # ではと思っていました。皆さんはどう思いますか?
> # 歴史的な事情もあると思いますが、mail()の追加ヘッダ引数が配列
> # ではないのは手抜きな仕様に思えてしまいます。

渡された配列を MIME ヘッダの形でシリアライズするとき、
いくらか考えなければいけないことがあります。

78文字オーバーな行については folding を行なうのが
RFC821 か RFC822 の流儀だったと思います。
ところが、それだけならいいのですが、
mime エンコードされたヘッダは、=? ではじまり、?= で終わる部分
の間でfolding が行なわれてはいけないとRFC2047 にありますので、
処理がややこしくなります。かつ、mime エンコードされていないヘッダに対し
folding が行なわれていると、改行とそれに続くスペースは一個のスペースとして
見なされるのに対し、mime エンコードされたヘッダの場合は、
スペースを無視するのが通例ですので、
mail 関数側でそれらを考慮するのはとても無理だと考えます。
従って、mb_send_mail を拡張するのが得策かと。
 
> PS: finite state machineを読む場合、各stateの説明を簡単
> でもよいのでコメントして頂けると読む時間が半減するので有難いです。
> と書いて、自分もコメントを書かない場合もあります。他の人が書いた
> state machineは読みづらい :) 今回のパッチには2つのstate
> があったのでコメントがあった方が良いかな、と思っただけです。

ハッキングの愉しみを残しておきたいじゃないですか :)

いえ、、コミットする際にはコメントつけておきます。。。
でもコメントつけづらいのも有限ステートマシンの特徴ですね。