How to program round this poplib error?

cl at isbd.net cl at isbd.net
Thu Mar 10 07:04:39 EST 2016


I have a (fairly simple) Python program that scans through a
'catchall' E-Mail address for things that *might* be for me.  It sends
anything that could be for me to my main E-Mail and discards the rest.

However I *occasionally* get an error from it as follows:-

    Traceback (most recent call last):
      File "/home/chris/.mutt/bin/getCatchall.py", line 65, in <module>
        pop3.dele(i+1)
      File "/usr/lib/python2.7/poplib.py", line 240, in dele
        return self._shortcmd('DELE %s' % which)
      File "/usr/lib/python2.7/poplib.py", line 160, in _shortcmd
        return self._getresp()
      File "/usr/lib/python2.7/poplib.py", line 132, in _getresp
        resp, o = self._getline()
      File "/usr/lib/python2.7/poplib.py", line 377, in _getline
        raise error_proto('line too long')
    poplib.error_proto: line too long


Does anyone have any idea how I can program around this somehow?  As
it is at the moment I have to go to the webmail system at my ISP and
manually delete the message which is a bit of a nuisance.

The piece of code that produces the error is as follows:-

        # 
        # 
        # Read each message into a string and then parse with the email module, if 
        # there's an error retrieving the message then just throw it away 
        # 
        try:
            popmsg = pop3.retr(i+1)
        except:
            pop3.dele(i+1)
            continue

The trouble is that the error is (presumably) some sort of buffer size
limitation in pop3.dele().  If I trap the error then I still can't get
rid of the rogue E-Mail and, more to the point, I can't even identify
it so that the trap could report the error and tell me which message
was causing it.

I guess one way to get around the problem would be to increase
_MAXLINE in /usr/lib/python2.7/poplib.py, it's on my own system so I
could do this.  Can anyone think of a better approach?



-- 
Chris Green
·



More information about the Python-list mailing list