"NONE" やら "UTF8" では、C-T: の name に生JISが入ってるようなときに、 うまくパラメータをとってこれないなぁ。
$ cat mail.txt Content-Type: application/octet-stream; name="本" $ nkf -g mail.txt ISO-2022-JP $ cat ct.rb require "tmail" mail = TMail::Mail.parse(ARGF.read) ct = mail.header["content-type"] p ct.params ct.instance_eval do # FIXME: irresponsible regexp if m = %r!(.+)/(.+); name="(.+)"!in.match(@body) @main = m[1].downcase @sub = m[2].downcase (@params ||= {})["name"] = to_kcode(m[3]) end end p ct.params $ ruby -Kn ct.rb mail.txt | nkf -w {"name"=>"\e$BK\e(B"} {"name"=>"\e$BK\\\e(B"} $ ruby -Ku ct.rb mail.txt | nkf -w {"name"=>""} {"name"=>"本"} $ ruby -Ke ct.rb mail.txt | nkf -w {"name"=>"本"} {"name"=>"本"} $ ruby -Ks ct.rb mail.txt | nkf -w {"name"=>"本"} {"name"=>"本"}
バックスラッシュが消えちゃう模様。 "UTF8" で使うのは、何かと問題が多いのかなぁ。