[PHP-dev 1186] Re: PHP4.4.1でmb_send_mailの第5引数が利かなくなってる

Moriyoshi Koizumi moriyoshi @ at.wakwak.com
2005年 11月 6日 (日) 21:49:32 JST


小泉です。
ご無沙汰しています。

2005-11-05 (土) の 19:31 +0900 に Tadashi Jokagi さんは書きました:

>     ・いきなり第 2 引数あるいは(省略値)でエンコードしようとする
>       「[php-users:####]」のように ASCII で始まる場合でもいきなり MIME
>       エンコードしようとします.その為,一部の ML ドライバーやメーラー
>       などで問題が出る場合があるようです.
<snip>
> #iconv も箇条書きの 3 つ目の問題が BASE64 の場合だけあるんですよね.
>  がっくししたので自分でエンコード処理書いちゃいました
> 

本当に本業が忙しいため、まったくフォローアップおよびフォロー
できていないのは大変恐縮なのですが、この問題は、厳密さを考えると
予想以上に複雑かもしれません。 

まず、例に挙がっている "[php-users:####]" ですが、この文字列が
MIME ヘッダエンコーダに渡された際、果たして ASCII の文字なのか、
それとも同じ文字コードポイントを持つ別の文字セットの文字なのかを
区別する必要があります。でないと、そのエンコーダの利用者の
意図を正確に反映したことになりません。

# たとえばバックスラッシュが含まれていた場合などはどうするのか、等

ISO-2022 では厳密に処理することが可能になりますが、
他の文字エンコーディングの場合では、表現される文字セットが
ASCII のスーパーセットなのかどうかをあらかじめエンコーダ側が
知っていなくてはなりません。

そのような情報を提供する機能は iconv() にはないので、
アドホックに \x01 - \x7e は ASCII とみなしてエンコードしない
などの措置を可能にするオプションを付けることはできます。

# とかいって、ただ面倒臭いだけだったり。。。




PHP-dev メーリングリストの案内