[PHP-dev 908]Re: mbstringのBUGではないでしょうか?

tec-info @ doevery.com tec-info @ doevery.com
2003年 10月 6日 (月) 08:58:45 JST


中川さん

山下です。いろいろと試していただきまして、ありがとう
ございます。

T.P.S.Nakagawa さんは書きました:
>>  sample code:::
>>      $body="aaaa ....以下改行なしで文字をつなげる
>>      mb_language("japanese");
>>      mb_send_mail($to,$subject,$body);
>
>  としたところ、これも再現できませんでした。
>
>私のほうでも、このあと山下さんと同じ環境をつくって
>同じ configure オプションでテストしてみますね。


こちらの方でもその後、いろいろ試しまして、回避できるように
なりました。

まず、文字をぶった切っているのは、ご指摘のとおり、mail()関数の
のようです。私の考察が足りなくて、mbstringではないかと早合点
してしまいました。失礼しました。

次に回避した方法ですが、そもそも、今回はWebからの入力をそのまま
メール関数に引き渡して、メール送信を行っていたのですが、
その際に改行が適切でなく、mail()ではBODY部分を長い1行だと解析
していたようです。
そこで、mb_send_mailに渡してやる前に、
    $body=preg_replace("/\r/","\r\n",$body);
の1行をいれてやるとうまくいきました。
ちなみに、PHPの内部コードはEUC、Webの入力はSJISの環境でした。


本来はphp-usersのMLに投げる話題でしたが、私の思慮不足から
PHP-DEVの方に投げてしまいまして、失礼いたしました。

末尾ながら、お忙しい中、お時間を割いていただいた大勢の方に、
お礼申し上げます。



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