• ベストアンサー

Rubyでメールの添付ファイルを取り出す

Rubyの勉強をしているところです。 メールに添付されたファイルを取り出すプログラムを作りたいのですが、 参考にあるサイトや書籍をご存じないでしょうか? Rubyは1.9もしくは2.0をしようすることを想定しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

No.1です。 >2)を使う場合は、1)は不要と言うことですよね? そうです。どちらか1つで可能です。 1)の場合はサーバーのメールボックスをRubyで管理する必要があります。メールソフトがやっている読み込みや削除をプログラムとして書いてやる必要があります。メールソフトを時々立ち上げてサーバーのメールボックスのバックアップや削除などに使えば良いように思います。 さて、ちょっとテストしてみたのですが、net/popとtmailの組み合わせでの使い方がサイトで見かけるのですが、こちらでやって見るとtmailがエラーがでてまともにrequireができませんでした。 rubygemsにあるmailを使ってやってみました。 添付ファイルはmultipartで取得できました。attachの場合もあるはずですので、いろいろ試したみてください。 実際に動いたものです。 require "mail" Mail.defaults do retriever_method :pop3, :address => "pop.xxx.xxx", :port => 110, :user_name => '<username>', :password => '<password>', :enable_ssl => false end m0=Mail.last p m0.subject p m0.attachment? p m0.multipart? pt=m0.part p pt[0].decoded

nsonoda
質問者

お礼

すみません、返事が遅くなりました。 手が回らずアドバイス頂いたプログラムでまだ試していないのですが、 ここまでかいていただければ、出来ると思います。 本当にありがとうございます。

その他の回答 (1)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

大きく分けて2つの方法が考えられます。 1)サーバーに直接アクセスしてメールを取り出すには、標準添付されている net/pop、net/imapあたりを使います。 2) サーバーではなく、使用しているパソコンのメールソフトをコントロールする方法があります。 OSが何か書いていないのですが windowsなら http://magazine.rubyist.net/?0003-Win32OLE あたりを参考に MacならAppleScriptをRubyから呼び出しメールソフトをコントロールします。

nsonoda
質問者

お礼

回答ありがとうございます。 2)を使う場合は、1)は不要と言うことですよね? できれば、純粋にRubyを用いて、 net/popでメールを取得し、 その後、Rubyで添付ファイルだけを指定のディレクトリに 保管したいと考えています。 Rubyではメールの添付ファイルを抽出は一般的ではないのでしょうか。。。。

関連するQ&A