From: Ken-ichi HASHIMOTO Date: 2003-05-15T18:43:33+09:00 Subject: [ruby-list:37678] [TMail] Fromのパースについて 橋本です。 便利なRubyを使わせて頂いております。 TMailのFromのパース&エンコードについて質問&BUG報告します。 TMail は 0.10.6 Ruby は 1.6.8 (mswin32 and linux) を使用しています。 -------コード require 'tmail' #(1) buf = 'From: hoge@example.jp (hoge)' mail = TMail::Mail.parse( buf ) mail.encoded # => OK #(2) buf = 'From: hoge@example.jp (=?ISO-2022-JP?B?GyRCJUYlOSVIGyhC?=)' mail = TMail::Mail.parse( buf ) mail.encoded # => NG ------ここまで 1.致命的なエラー (2)のコードのように処理をすると、次のトレースを吐き出します。 なお、(1)のコードは、トレースを吐き出しません。 2.仕様なのかBUGなのか分からない動作 ()を含むアドレスをパースした時、TMail::Address.name の値がnil buf = 'From: (namae desu) hoge@example.jp' mail = TMail::Mail.parse( buf ) mail.from_addrs[0].name #=> nil # namae desu が出てくる? RFC2822 で 「(namae desu) hoge@example.jp」 ような表記は廃止されています。 その為正しく処理しない仕様なのでしょうか? ソースを追いかけだしたのですが、ちょっとよく分からないので、安直に 聞いてしまいます。 何か情報がありましたらお願いします。 --- 1. のフレームです。 D:/ruby/lib/ruby/site_ruby/1.6/tmail/encode.rb:337:in `concat_e': TMail FATAL: exist: "(" (RuntimeError) from D:/ruby/lib/ruby/site_ruby/1.6/tmail/encode.rb:309:in `do_encode' from D:/ruby/lib/ruby/site_ruby/1.6/tmail/encode.rb:279:in `scanadd' from D:/ruby/lib/ruby/site_ruby/1.6/tmail/encode.rb:209:in `text' from D:/ruby/lib/ruby/site_ruby/1.6/tmail/header.rb:280:in `do_accept' from D:/ruby/lib/ruby/site_ruby/1.6/tmail/header.rb:277:in `each' from D:/ruby/lib/ruby/site_ruby/1.6/tmail/header.rb:277:in `do_accept' from D:/ruby/lib/ruby/site_ruby/1.6/tmail/header.rb:118:in `accept' from D:/ruby/lib/ruby/site_ruby/1.6/tmail/mail.rb:81:in `accept' ... 7 levels... from D:/ruby/lib/ruby/site_ruby/1.6/tmail/mail.rb:77:in `accept' from D:/ruby/lib/ruby/site_ruby/1.6/tmail/encode.rb:48:in `accept_strategy' from D:/ruby/lib/ruby/site_ruby/1.6/tmail/encode.rb:36:in `encoded' --- 橋本 賢一 Ken-ichi HASHIMOTO E-Mail ken@po.ganseki.ne.jp