2011-08-31 73 views
1

我尝试连接到邮件Yahoo!来自Ruby的帐户使用net/imap和net/pop。但我随机得到错误EOFile(从IMAP)或连接拒绝/重置由同行(从POP)。有人试图连接到Yahoo!邮件,并有一些关于它的经验?连接到Yahoo!来自Ruby的邮件

回答

1

ruby​​的net/imap库在连接到Yahoo时暴露出来。 解决方法是简单的和这里所描述:

http://redmine.ruby-lang.org/issues/4509

基本上,编辑imap.rb和从改变search_response方法的内循环:

 token = lookahead 
     case token.symbol 
     when T_CRLF 
      break 
     when T_SPACE 
      shift_token 
     end 
     data.push(number) 

到:

 token = lookahead 
     case token.symbol 
     when T_CRLF 
      break 
     when T_SPACE 
      shift_token 
     else 
      data.push(number) 
     end 

然后用以下代码进行测试:

require 'net/imap' 
Net::IMAP.debug = true 
conn = Net::IMAP.new('imap.mail.yahoo.com', 143, false) 
conn.instance_eval { send_command('ID ("GUID" "1")') } 
conn.authenticate('LOGIN', ARGV[0], ARGV[1]) 
conn.select("INBOX") 
uids = conn.uid_search(['ALL']) 
puts uids.join(',') 
conn.logout 
conn.disconnect