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