我一直在尝试使用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):
我如何获取这些详细信息,并且我想在表格中创建新条目时向用户发送通知,然后单击该条目应将其带到我必须显示电子邮件的页面。
我怎么能这样做,我应该使用像调度程序这样的东西来检查新邮件是否已经来了,如果我没有阅读邮件,我怎么能确定我已收到邮件而且我不想复制。请帮帮我。