Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: ShreyasОтветов: 1

Я получаю почту, используя 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

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

rubyparsingemailactionmailer

Ответы

Ответ 1 · рейтинг 1 · Alex Korban

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы