いまなら mail 使ったほうがいいんだろうけども。
https://gist.github.com/848966
raw_message = STDIN.read email = TMail::Mail.parse(raw_message) if email.has_attachments? email.attachments.each do |attachment| image = attachment.read filename = attachment.original_filename end elsif email.content_type == 'image/jpeg' image = email.body filename = email.header['content-disposition'].params['filename'] end
マルチパートメッセージというか MIME というか(なんて呼ぶのが正しいのかわからない)それの理解が浅くて本文のテキストがなくて画像だけ添付したメールから取り出す方法がわからなかったけどふつうに email.body を読むだけでよかった (else 節)
これを書くにあたって tmail の rdoc とソースを読んだのだけど、ソースがとても綺麗で美しくて(大事なことなので二度言いました)読んでいて幸せな気持ちになれたので読んだことないひとには一度読んでみることをおすすめします。特に Attachment < StringIO なので attachment.read で読めるところに惹かれた。