X-Git-Url: https://code.delx.au/offlineimap/blobdiff_plain/2e52bcdafec3e7ec5c9eacf8c2405274178ef174..39a18fef6078388dac7a1db386cdfd2900f5263c:/offlineimap/folder/IMAP.py diff --git a/offlineimap/folder/IMAP.py b/offlineimap/folder/IMAP.py index 41c6982..7cb334a 100644 --- a/offlineimap/folder/IMAP.py +++ b/offlineimap/folder/IMAP.py @@ -14,7 +14,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from Base import BaseFolder from offlineimap import imaputil, imaplib @@ -234,6 +234,7 @@ class IMAPFolder(BaseFolder): ui.debug('imap', 'savemessage: first attempt to get new UID') uid = self.savemessage_searchforheader(imapobj, headername, headervalue) + # See docs for savemessage in Base.py for explanation of this and other return values if uid <= 0: ui.debug('imap', 'savemessage: first attempt to get new UID failed. Going to run a NOOP and try again.') assert(imapobj.noop()[0] == 'OK') @@ -242,7 +243,9 @@ class IMAPFolder(BaseFolder): finally: self.imapserver.releaseconnection(imapobj) - self.messagelist[uid] = {'uid': uid, 'flags': flags} + if uid: # avoid UID FETCH 0 crash happening later on + self.messagelist[uid] = {'uid': uid, 'flags': flags} + ui.debug('imap', 'savemessage: returning %d' % uid) return uid