2011-06-22 6 views
1

Je veux savoir s'il existe un moyen d'analyser un courriel reçu.Analyse des courriels avec la méthode de réception ActionMailer :: Base

Par exemple, quelqu'un me envoie l'e-mail suivante:

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

Ce que je veux est un moyen d'obtenir ces informations et l'insérer dans la base de données Je sais qu'il ya une méthode dans ActionMailer :: Base appelée recevoir. Est-ce la bonne approche? Comment analyser cela?

Répondre

1

Oui, c'est la bonne approche, il suffit de google "recevoir des mails avec ruby ​​sur rails" - il ya beaucoup de tutoriels pour vous guider.

L'analyse dépend du type de données que vous allez recevoir. Cela ressemble à JSON, donc vous laissez simplement un analyseur JSON faire le travail et il vous donnera une structure de données Ruby appropriée. Le reste (le mettre dans une base de données) peut être manipulé par un modèle.

Il aurait l'air un peu comme ceci:

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 

Je ne couvre pas le chargement proprement dit des mails à partir d'une boîte aux lettres. Encore une fois: google, il y a des tonnes de tutoriels là-bas. Jetez un oeil à Fetcher, qui m'a toujours bien servi.

+0

Excellent ..! Merci d'avoir répondu –

Questions connexes