Popper quits if login limit reached

Bug #795798 reported by Santiago Ward
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Popper
Fix Released
Medium
Ralf Hersel

Bug Description

I added my Hotmail account via POP. It has a 15 minute limit between checks. When this limit is reached, Popper gets the following error:
'poplib.error_proto: -ERR Exceeded the login limit for a 15 minute period. Reduce the frequency of requests to the POP3 server.'
and then quits.
Could it ignore this account and continue working until the next check?
Increasing the check frequency could be a work around, but it's hard to manage it if you have multiple computers.

Revision history for this message
Ralf Hersel (ralf.hersel) wrote :

We got some request to implement individual check frequencies per account but we have no plans to do it. Therefore I recommend to increase the frequency as you suggested.

Changed in popper:
status: New → Won't Fix
importance: Undecided → Wishlist
Revision history for this message
Santiago Ward (santiagoward2000) wrote :

OK, but would it be possible that Popper doesn't quit when it receives the 'login limit reached' error?

Revision history for this message
Ralf Hersel (ralf.hersel) wrote :

Will take this into account for version 0.30. Currently version 0.29 is in testing and therefore closed for any further development.

Changed in popper:
status: Won't Fix → Confirmed
assignee: nobody → Ralf Hersel (ralf.hersel)
importance: Wishlist → Medium
milestone: none → zero
Revision history for this message
Ralf Hersel (ralf.hersel) wrote :

I have start to work on Popper 0.30 but I don't know where the error: 'poplib.error_proto: -ERR Exceeded the login limit for a 15 minute period.' occurs. Can you reproduce the error and tell me at what line in the code Popper crashes. Best would be if you could send the log file: home/user/.popper/popper.log

Revision history for this message
Santiago Ward (santiagoward2000) wrote :

When I run popper.py on a terminal, I get:
'Checking email accounts at: Wed Sep 7 17:31:21 2011
Traceback (most recent call last):
  File "/usr/share/popper/popper.py", line 1219, in <module>
    if __name__ == '__main__': main()
  File "/usr/share/popper/popper.py", line 1209, in main
    indicator.timeout() # immediate check, firstcheck=True
  File "/usr/share/popper/popper.py", line 545, in timeout
    self.mail_list = self.mails.get_mail(self.sort_order) # get all mails from all inboxes
  File "/usr/share/popper/popper.py", line 280, in get_mail
    mail_total = len(srv.list()[1]) # number of mails on the server
  File "/usr/lib/python2.7/poplib.py", line 216, in list
    return self._longcmd('LIST')
  File "/usr/lib/python2.7/poplib.py", line 159, in _longcmd
    return self._getlongresp()
  File "/usr/lib/python2.7/poplib.py", line 135, in _getlongresp
    resp = self._getresp()
  File "/usr/lib/python2.7/poplib.py", line 128, in _getresp
    raise error_proto(resp)
poplib.error_proto: -ERR Exceeded the login limit for a 15 minute period. Reduce the frequency of requests to the POP3 server.'

popper.log has no useful information, just the times of the latest checks, like 'Checking email accounts at: Wed Sep 7 15:29:57 2011'.

Revision history for this message
Ralf Hersel (ralf.hersel) wrote :

Hi Santiago
I need your help to fix this error. Can you please do two things:

1. Think
If I trap this error and Popper keeps on shooting at the server every x minutes, will the 'login limit' always start to count up again? If this is the case, you will never get access to the server and only increasing the check frequency will help. I'm not shure about the behaviour of the server because I cannot test it (my email servers don't have a login limit.

2. Act
So let's test it. Could you please do this:
a) open a terminal and go to: usr/share/popper/
b) create a backup copy of file: popper.py
c) open the original file: popper.py in an editor
d) go to line: 280
e) change the code
from:
=====================================================
else: # POP
 mail_total = len(srv.list()[1]) # number of mails on the server
 mail_count = 0 # reset number of relevant mails
=====================================================

to:
=====================================================
else: # POP
 try:
  mail_total = len(srv.list()[1]) # number of mails on the server
 except: # trap: 'exceeded login limit'
  continue
 mail_count = 0 # reset number of relevant mails
=====================================================

This change will trap any error in the code line: mail_total....
and continue with the next account if the error occurs.

ATTENTION: ensure that you make all indentations with TAB and not with SPACE

f) save the changed file
g) run it from the command line and see what happens
h) let me know if your computer turned into a heap of ash :-)

Revision history for this message
Santiago Ward (santiagoward2000) wrote :

Hi Ralf
1. From my experience, I believe the counter isn't reset with every attempt to login. I'm not really sure what makes it start counting, because I can get a few successful consecutive checks on my mail client (less than 15 minutes apart) with no problem. But I did check a few times during the "exceeded login limit" period and after 15 minutes it was working again.

2. Done. Everything seems to be working fine for now (no heap of ash, crossing fingers). Popper started with no problem. I noticed it doesn't notify the "exceeded login limit" anymore, I know I have exceeded it because the client did notify it.

Great work and thank you for your time! If you need any more testing just ask :)
Thank you!

Revision history for this message
Ralf Hersel (ralf.hersel) wrote :

Ok, keep an eye on the behaviour. If you don't report any heaps of ashes, I will deliver the changed code (as you did) in version 0.30.

Changed in popper:
status: Confirmed → Fix Committed
Revision history for this message
Mark Volcheff (volcheff) wrote :

Apologies for stumbling into your conversation. I have discovered this conversation through a Google search of the error message you introduced in the bug description. I have had this problem for about three weeks, do not know what caused it. I get this message constantly and have taken my Android X to Verizon who have spent hours to come up with no solutions. I have a hotmail msn.com account that I am pushing to my Droid X. I've deleted all other mail accounts except G-mail which I have not ever used, I've done a factory reset and the only think that seems to allow my msn e-mails is re-entering my password and it occasionally will synch up for a very short time to give me an e-mail dump. Those intervals are anywhere from 4-16 hours to get new e-mails.

Frankly, I'm not sure what your conversation is all about and the recommendation to "increase" the check frequency seems counterintuitive based on how the error message reads.

I'd greatly appreciate your assistance. Ever since I switched from my Pc to my MacBook Pro, my droid X has rejected cooperating -- e-mails don't download well, calendars don't sync without forcing from the Droid, Contacts never sync, etc.

Thanks in advance for your suggestions.

Mark

Revision history for this message
Ralf Hersel (ralf.hersel) wrote :

Hi Mark
seems that your problem is completely different from what we are discussing here. We are talking about email providers that prevent you from accessing your email account too often. They refuse to respond when you access them more often than x minutes. The solution is: don't fall below your provider's access limit (or change your email provider).
Cheers Ralf

Revision history for this message
Mark Volcheff (volcheff) wrote :

Ralph, thanks for your reply and my apologies for jumping in with my problems, where as you can tell, I am not versed enough to know that you were talking about a completely different issue. My Google search, which was nothing more than a cut and paste of the error message I am receiving took me to this site. Sorry for taking up your time, I will search elsewhere for resolution.

Regards
Mark

Changed in popper:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.