Catch 'BAD' replies on append()ing a message
append() raises an Exception, in case the IMAP server replies with 'BAD' (but not when it responds with 'NO') but we were not catching that. Do catch the situation and also raise an OfflineImapError at MESSAGE severity, so that we can continue with the next message. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de> Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
parent
e6dee14a84
commit
194aa1db3c
@ -454,9 +454,14 @@ class IMAPFolder(BaseFolder):
|
|||||||
(date, dbg_output))
|
(date, dbg_output))
|
||||||
|
|
||||||
#Do the APPEND
|
#Do the APPEND
|
||||||
(typ, dat) = imapobj.append(self.getfullname(),
|
try:
|
||||||
|
(typ, dat) = imapobj.append(self.getfullname(),
|
||||||
imaputil.flagsmaildir2imap(flags),
|
imaputil.flagsmaildir2imap(flags),
|
||||||
date, content)
|
date, content)
|
||||||
|
except Exception, e:
|
||||||
|
# If the server responds with 'BAD', append() raise()s directly.
|
||||||
|
# So we need to prepare a response ourselves.
|
||||||
|
typ, dat = 'BAD', str(e)
|
||||||
if typ != 'OK': #APPEND failed
|
if typ != 'OK': #APPEND failed
|
||||||
raise OfflineImapError("Saving msg in folder '%s', repository "
|
raise OfflineImapError("Saving msg in folder '%s', repository "
|
||||||
"'%s' failed. Server reponded; %s %s\nMessage content was:"
|
"'%s' failed. Server reponded; %s %s\nMessage content was:"
|
||||||
|
Loading…
Reference in New Issue
Block a user