[PHP-users 20641]Re: mail関数で文字数制限?
Yasuo Ohgaki
yohgaki @ ohgaki.net
2004年 3月 3日 (水) 15:13:52 JST
SAWADA Hodaka wrote:
> RFC 原理主義者ではないですが。
私もですが。
動けばよい、というのは良くないので...
>
> At Wed, 03 Mar 2004 13:29:33 +0900,
> moonface wrote:
>
>
>>>長い行をそのまま送信する時は
>>>BASE64エンコードします。
>>>
>>>Content-Transfer-Encoding: Base64
>>>にして、本文をBASE64エンコードする。
>>>BASE64エンコードした結果を固定長で
>>>改行するとどうでしょうか?
>>
>>1.base64で本文をエンコード
>>2.1000バイトで改行
>>
>>でそのまま(書いたとおりの改行位置で)送信できました。
>>ありがとうございました。
>
>
> RFC では、
> 一行が 1000バイト + CRLF の 1002 バイトは ×
> 一行が 998バイト + CRLF の 1000 バイトは ○
> です。
>
> なんとなく、だめなほうをやってそうなので mail いたしました。
> もし、998 バイトで改行しているならば、
> 「そんなことしっとるわい、ぼけ」と読み流してください。
1000バイトは最大の長さであって、Base64では
76文字(バイト)で改行(RFC2045)することになっています。
Encoded lines must not be longer than 76 characters,
not counting the trailing CRLF. If longer lines are
found in incoming, encoded data, a robust
implementation might nevertheless decode the lines, and
might report the erroneous encoding to the user.
エラーになる可能性があるので76バイトで改行するべきです。
--
Yasuo Ohgaki
PHP-users メーリングリストの案内