From: Takahiro Kambe Date: 2007-03-22T20:40:47+09:00 Subject: [ruby-list:43305] Re: TMailでデコードエラー In message <200703221003.l2MA3BFA046564@tecD81.tec.u-ryukyu.ac.jp> on Thu, 22 Mar 2007 19:03:08 +0900, OSHIRO Naoki wrote: > のですが,Thunderbird で添付されたファイルがうまく認識できないよ > うです.問題のない Sylpheed からの送信メールと Thunderbird の場 > 合のマルチパートヘッダは以下のようになります. 不幸なところに手を出してしまったと思います。:-p > [Sylpheed 2.2.9の場合]→問題なし > Content-Type: application/vnd.ms-excel; > name="=?ISO-2022-JP?B?GyRCJUYlOSVIJVUlISUkJWskRyQ5GyhCLnhscw==?=" > Content-Disposition: attachment; > filename="=?ISO-2022-JP?B?GyRCJUYlOSVIJVUlISUkJWskRyQ5GyhCLnhscw==?=" > Content-Transfer-Encoding: base64 こちらの形式は RFC2231 よりも前で、本来は非US-ASCIIを「ファイル名」に 含めることができない形式です。つまり規格としては正しくない使い方ですが、 こちらでないと理解できない某Outlookとかがのさばっているのが現状です。 > [Mozilla Thunderbird 1.5.0.8の場合]→失敗 > Content-Type: application/msexcell; > name*0*=ISO-2022-JP''%1B%24%42%25%46%25%39%25%48%25%55%25%21%25%24%25%6B; > name*1*=%24%47%24%39%1B%28%42%2E%78%6C%73 > Content-Transfer-Encoding: base64 > Content-Disposition: inline; > filename*0*=ISO-2022-JP''%1B%24%42%25%46%25%39%25%48%25%55%25%21%25%24%25; > filename*1*=%6B%24%47%24%39%1B%28%42%2E%78%6C%73 > > Thunderbird の場合は name*0*, name*1* あるいは filename*0*, > filename*1* などと添付ファイル情報が複数行に渡っており,このせい > で失敗しているのではと考えています(おそらく main_type 取得時に こちらは、RFC2231に準拠した、非US-ASCIIを含んだファイル名の正しいエン コード方法です。 でも、 > エラーの状況↓ > > --ここから--------------------------------------------------------------- > /usr/local/lib/ruby/site_ruby/1.8/tmail/textutils.rb:191:in `nkf': can't convert nil into String (TypeError) > from /usr/local/lib/ruby/site_ruby/1.8/tmail/textutils.rb:191:in `decode_RFC2231' ... といったエラーの状況からは、RFC2231でありながらの何か別の問題かもしれ ませんね。 -- 神戸 隆博(かんべ たかひろ) at 仕事場