小编Fel*_*Ogg的帖子

如何通过ruby/mikel邮件删除服务器上的特定邮件?

我想使用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封邮件,这个脚本只删除两者.相反,我只想删除第一个.

ruby email ruby-1.9

2
推荐指数
1
解决办法
1723
查看次数

Ruby将String隐式转换为Integer(typeError)

我正在尝试使用YAML文件,从中读取并向其写入值列表.在第一次运行此脚本时,正确创建了yaml文件,但是在第二次运行时它会抛出一个我不知道要修复的转换TypeError.

db_yml = 'store.yml'

require 'psych'
begin
    if File.exist?(db_yml)
        yml = Psych.load_file(db_yml)
        puts "done load"        

        yml['reminders']['reminder_a'] = [123,456] 
        yml['reminders']['reminder_b'] = [457,635,123]
        File.write(db_yml, Psych.dump(yml) ) 
    else 
      #the file does not exist yet, create an empty one.
        File.write(db_yml, Psych.dump(
        {'reminders' => [
            {'reminder_a'=> [nil]}, 
            {'reminder_b'=> [nil]}
        ]}
  )) #Store
    end
rescue IOError => msg  
  # display the system generated error message  
  puts msg 
end
Run Code Online (Sandbox Code Playgroud)

在第一次运行时生成文件store.yml:

---
reminders:
- reminder_a:
  - 
- reminder_b:
  - 
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是在第二次运行时,它失败了

done load
yamlstore.rb:23:in `[]=': no implicit conversion of …
Run Code Online (Sandbox Code Playgroud)

ruby yaml

0
推荐指数
1
解决办法
316
查看次数

标签 统计

ruby ×2

email ×1

ruby-1.9 ×1

yaml ×1