如何在Ruby中使用net / imap在邮箱中搜索邮件?
发布时间:2020-12-17 02:01:43 所属栏目:百科 来源:网络整理
导读:我在 Ruby 1.9.3上有一些脚本: require "net/imap"imap = Net::IMAP.new(mail_imap_server)imap.login(mail_login,mail_password)imap.select("INBOX")puts imap.search(["FROM","homer@simpson.com"])imap.logoutimap.disconnect 如果存在所需的消息,那么
我在
Ruby 1.9.3上有一些脚本:
require "net/imap" imap = Net::IMAP.new(mail_imap_server) imap.login(mail_login,mail_password) imap.select("INBOX") puts imap.search(["FROM","homer@simpson.com"]) imap.logout imap.disconnect 如果存在所需的消息,那么一切都很好. /opt/local/lib/ruby1.9/1.9.1/net/imap.rb:1332:in `block in search_internal': undefined method `[]' for nil:NilClass (NoMethodError) from /opt/local/lib/ruby1.9/1.9.1/monitor.rb:211:in `mon_synchronize' from /opt/local/lib/ruby1.9/1.9.1/net/imap.rb:1326:in `search_internal' from /opt/local/lib/ruby1.9/1.9.1/net/imap.rb:752:in `search' from ./mail.rb:12:in `mail' from ./mail.rb:26:in `<main>' 我怎么解决这个问题? 解决方法
首先检查结果中是否有消息,以防万一
require "net/imap" imap = Net::IMAP.new(mail_imap_server) imap.login(mail_login,mail_password) imap.select("INBOX") begin messages = imap.search(["FROM","homer@simpson.com"]) puts messages if messages.length > 0 rescue puts "Error while retrieving the message" end imap.logout imap.disconnect (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |