我试图提取从我们的某个服务提供商发送的电子邮件附件,并将其保存到网络驱动器中,以便显示Smashing Dashboard的信息。
我正在尝试使用Mail Gem来执行此操作: https://github.com/mikel/mail http://www.rubydoc.info/github/mikel/mail/Mail
然而,我对ruby,特别是这个特定的宝石缺乏经验,所以我遇到了破译电子邮件的错误。
###########################################################################
######################## Connect to the POP Server ########################
###########################################################################
require 'mail'
Mail.defaults do
retriever_method :pop3, :address => "pop.gmail.com",
:port => 995,
:user_name => '----',
:password => '----',
:enable_ssl => true
end
###################################################################
######################## Retrieve the Mail ########################
###################################################################
email = Mail.first #=> Returns the first unread
puts email
if (email.length > 0)
puts "New Mail Found"
else
puts "No New Mail"
end
当我在没有新电子邮件的情况下运行时,一切运行正常,但是当有新电子邮件时,我收到以下错误。
/var/lib/gems/2.3.0/gems/mail-2.6.6/lib/mail/message.rb:1379
:在的未定义方法
method_missing
:length
来自Pop.rb的#(NoMethodError):35:
main
此行与if语句相对应。然而,github的例子非常清楚地使用mail.length来检查返回的电子邮件的数量,我只是不知道如何解决这个问题。
我很感激额外的眼睛检查这个明显错误的东西,甚至是调试它的一些技巧。
答案 0 :(得分:0)