2010-04-21 5 views
1

Je récupère du courrier en utilisant net/pop, mais je dois également analyser le courrier électronique pour obtenir le sujet, l'adresse et le corps du message. Des idées avec Action Mailer? Je suis censé utiliser des pierres précieuses 3ème partie. (Non, même pas tmail)Analyse de courrier électronique dans Ruby à l'aide d'Action Mailer

require 'rubygems' 
require 'net/pop' 
require 'pop_ssl' 

Net::POP3.enable_ssl(OpenSSL::SSL::VERIFY_NONE) 

def pull_mail 
    Net::POP3.start("pop.gmail.com", 995, "uname","pass") do |pop| 

    if pop.mails.empty? 
     puts 'No mails.' 
    else 
     pop.each_mail do |mail| 
     puts mail_header 
    end 
    end 

end 

Cheers!

Répondre

1

Fondamentalement, il vous suffit d'écrire votre gestionnaire de courrier électronique, et tout le parsing sera fait pour vous dans les coulisses:

class MailHandler < ActionMailer::Base 
    def receive(email) 
    # here you will have an email object and will be able to call methods like 
    # email.subject and email.attachments 

    puts "from: #{email.from}, subject: '#{email.subject}'" 
    end 
end 

Lorsque vous recevez des e-mails à l'aide de Net :: POP3, juste les remettre à votre gestionnaire:

Net::POP3.start(server, port, username, password) do |pop| 
    pop.each_mail { |mail| MailHandler.receive(mail.pop) } 
end 
Questions connexes