Разбор электронной почты в Ruby с помощью Action Mailer

Я получаю почту, используя net/pop , но мне также нужно проанализировать электронную почту, чтобы получить тему, адрес и тело электронной почты. Есть идеи по поводу Action Mailer? Я должен использовать сторонние драгоценные камни. (Нет, даже Tmail)

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

Ваше здоровье!


person Shreyas    schedule 21.04.2010    source источник


Ответы (1)


По сути, вам просто нужно написать свой обработчик электронной почты, и весь синтаксический анализ будет сделан за вас за кулисами:

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

Когда вы получаете электронные письма с помощью Net::POP3, просто передайте их своему обработчику:

Net::POP3.start(server, port, username, password) do |pop|
  pop.each_mail { |mail| MailHandler.receive(mail.pop) }
end
person Alex Korban    schedule 21.04.2010