Fel*_*Ogg 2 ruby email ruby-1.9
我想使用Ruby/Mikel Mail gem访问pop3,但我找不到从服务器中删除邮件的方法.这里有一些功能不正常的示例代码,它们解释了我如何误解所提供的rdoc规范.
require 'rubygems'
require 'mail'
Mail.defaults do
retriever_method :pop3, { :address => '...',
:user_name => '...',
:password => '...' }
end
puts "#{Mail.all.length} messages on server found."
if Mail.all.length > 0
mm = Mail.first
puts mm.from
puts "I delete all but the first mail!"
mm.mark_for_delete = false
Mail.find_and_delete
puts "#{Mail.all.length} messages on server found."
end
Run Code Online (Sandbox Code Playgroud)
结果是服务器上有2封邮件,这个脚本只删除两者.相反,我只想删除第一个.
找到它自己,如果你正在寻找相同的问题,请回答你.
事实证明你必须在find_and_delete()处抛出一个Block,以明确决定跳过删除消息,只需:
Mail.find_and_delete({:what=>:first}) { |msg|
msg.skip_deletion if msg.subject == "test1826"
}
Run Code Online (Sandbox Code Playgroud)