2011-06-22 6 views
1

受信したメールを解析する方法があるかどうかを知りたい。私がしたいことは、この情報を取得し、私が呼ばれるactionmailerの:: Baseの方法が存在しているはずデータベース に挿入する方法がActionMailer :: Baseでメールを解析する受信方法

{ 
     product: "x_product", 
     quantity: "1", 
     price: "15", 
    } 

です:たとえば

は、誰かが私に次のメールを送信します受け取ります。 これは正しいアプローチですか?これを解析するには?

答えて

1

はい、これは正しいアプローチです。単にgoogleの "ruby on railsでメールを受信する" - あなたを導くチュートリアルがたくさんあります。

構文解析は、受信しようとしているデータの種類によって異なります。これはJSONのように見えるので、JSONパーサに作業を任せるだけで、適切なRubyデータ構造が得られます。残りの部分(DBに入れる)は、モデルで扱うことができます。

それは少し次のようになります。私はメールボックスからメールの実際のフェッチをカバーしていない

class MailReceiver < ActionMailer::Base 

    def self.receive(message) 
    # depending on your Rails version you can use either TMail or Mail to parse the raw mail 
    mail = TMail::Mail.parse(message) 

    # parse the JSON 
    my_data = ActiveSupport::JSON.decode(mail.body) 

    # create something with the data 
    MyModel.create(my_data) 
    end 

end 

。再び:Googleそれは、そこにチュートリアルのトンがたくさんあります。常に私をよく助けてくれたFetcherを見てください。

+0

優秀..!答えをありがとう –