Disconnect and logout from IMAP after mail receive
|Assignee:||Jean-Philippe Lang||% Done:|
When running Redmine::IMAP.check(imap_options, options) in a continuous loop with a delay (I don't want to boot the rails env every time) you will eventually get the error listed below depending on your mail provider's maximum concurrent users:
rake aborted! Too many simultaneous connections. (Failure) /usr/local/lib/ruby/2.0.0/net/imap.rb:1156:in `get_tagged_response' /usr/local/lib/ruby/2.0.0/net/imap.rb:1210:in `block in send_command' /usr/local/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize' /usr/local/lib/ruby/2.0.0/net/imap.rb:1192:in `send_command' /usr/local/lib/ruby/2.0.0/net/imap.rb:435:in `login' /home/ppretorius/workspace-ruby/redmine-2.3.1/lib/redmine/imap.rb:30:in `check'
This problem is fixed by simply adding imap.logout and imap.disconnect at the end of the method:
imap.expunge imap.logout imap.disconnect
I got the solution from this stackoverflow post.
Disconnect and logout from IMAP after mail receive (#14103).
Patch by Pierre Pretorius.