[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 メーリングリストの案内