#
# 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
assert(imapobj.check()[0] == 'OK')
# Keep trying until we get the UID.
- try:
- ui.debug('imap', 'savemessage: first attempt to get new UID')
- uid = self.savemessage_searchforheader(imapobj, headername,
- headervalue)
- except ValueError:
+ 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')
uid = self.savemessage_searchforheader(imapobj, headername,
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