I have this method defined in a program I use for checking access to
IMAP accounts.
def tryIMAP (host, usessl, user, pass)
retryc = false
proto = usessl ? "IMAPS" : "IMAP"
begin
imap = Net::IMAP.new(host, usessl ? 993 : 143, usessl)
rescue Net::IMAP::ByeResponseError => e
imap.disconnect if imap
STDERR.print "#{host} #{proto} #{e.to_s}\n";
retryc = true
rescue => e
imap.disconnect if imap
STDERR.print "#{host} #{proto} #{e.to_s}\n";
return 'aborted'
end while retryc
begin
imap.login( user, pass)
imap.logout
imap.disconnect
'success'
rescue Net::IMAP::NoResponseError
'failure'
end
end
As you can see I explicitly have a rescue clause for
Net::IMAP::ByeResponseError but I still get the error raised at runtime
(Net::IMAP::ByeResponseError)948:in `receive_responses': * BYE
Autologout; idle for too long
from /usr/lib/ruby/1.8/net/imap.rb:932:in `synchronize'
from /usr/lib/ruby/1.8/net/imap.rb:932:in `receive_responses'
from /usr/lib/ruby/1.8/net/imap.rb:917:in `initialize'
from /usr/lib/ruby/1.8/net/imap.rb:916:in `start'
from /usr/lib/ruby/1.8/net/imap.rb:916:in `initialize'
from test.rb:11:in `new'
from test.rb:11:in `tryIMAP'
from test.rb:149
from test.rb:105:in `each'
from test.rb:105
from test.rb:94:in `each'
from test.rb:94
from test.rb:93:in `open'
from test.rb:93
I am testing several thousand accounts and this error happens at random
places in the list on different runs.
Can anyone suggest where I go from here. I suspect this is a bug
somewhere in imap.rb but I can't reproduce this reliably. Sigh...
Russell
···
--
Posted via http://www.ruby-forum.com/.