如何接收邮件并在rails中向用户发送通知?

时间:2013-11-13 04:56:24

标签: ruby-on-rails email ruby-on-rails-3.1 imap scheduler

我一直在尝试使用IMAP接收电子邮件,并向用户发送新邮件的通知。我有一个表“电子邮件”,我必须存储电子邮件信息,如message_from,message_to,message,我想知道如何在收到新邮件时从gmail中获取电子邮件。以下是代码

  require 'net/imap'
  require 'net/http'

  imap = Net::IMAP.new('imap.gmail.com', 993, usessl = true, certs = nil, verify = false)
  imap.login('sampleuser', 'password')
  imap.select('INBOX')
  imap.search(["NOT", "SEEN"]).each do |message_id|
    emails = imap.fetch(mail,'RFC822')[0].attr['RFC822']
    @mail = Email.new("from" => emails.from, "to" => emails.to)
    @mail.save
  end

但我无法获取message_from或message_to或消息,它显示错误为

TypeError (can't convert Symbol into Integer):

我如何获取这些详细信息,并且我想在表格中创建新条目时向用户发送通知,然后单击该条目应将其带到我必须显示电子邮件的页面。

我怎么能这样做,我应该使用像调度程序这样的东西来检查新邮件是否已经来了,如果我没有阅读邮件,我怎么能确定我已收到邮件而且我不想复制。请帮帮我。

1 个答案:

答案 0 :(得分:2)

接收电子邮件的最佳选择是GriddlerIt's easy to setup

您可以将电子邮件发送到您想要的模型,然后在那里进行处理。