OK, checking in patch 103329.

Please check it against your nearest pop server --
mine doesn't support APOP (I checked I'm getting the same error
message, though)
This commit is contained in:
Moshe Zadka 2001-01-19 19:56:27 +00:00
parent 2e9b396740
commit ccc2e3d05d
1 changed files with 5 additions and 4 deletions

View File

@ -15,7 +15,7 @@ TESTPASSWORD = "_passwd_"
# Imports
import regex, socket, string
import re, socket, string
# Exception raised when an error or invalid response is received:
@ -263,7 +263,7 @@ class POP3:
return self._shortcmd('RPOP %s' % user)
timestamp = regex.compile('\+OK.*\(<[^>]+>\)')
timestamp = re.compile(r'\+OK.*(<[^>]+>)')
def apop(self, user, secret):
"""Authorisation
@ -276,10 +276,11 @@ class POP3:
NB: mailbox is locked by server from here to 'quit()'
"""
if self.timestamp.match(self.welcome) <= 0:
m = self.timestamp.match(self.welcome)
if not m:
raise error_proto('-ERR APOP not supported by server')
import md5
digest = md5.new(self.timestamp.group(1)+secret).digest()
digest = md5.new(m.group(1)+secret).digest()
digest = string.join(map(lambda x:'%02x'%ord(x), digest), '')
return self._shortcmd('APOP %s %s' % (user, digest))