[PATCH v4] Re: make maxage use UIDs to avoid timezone issues

Abdó Roig-Maranges abdo.roig at gmail.com
Mon Apr 6 15:40:43 BST 2015

> My previous attempt at this was very wrong. Try #2.
> The one thing that's still not done with this is the unceremoniously
> commented out bit about mtimes.
> def syncmessagesto_labels(self, dstfolder, statusfolder):
> <...>	
>    for i, uid in enumerate(uidlist):
>    <...>
> #       mtime = dstfolder.getmessagemtime(uid)
> #       mtimes[uid] = mtime
>        labels[uid] = selflabels
> #            statusfolder.savemessagesmtimebulk(mtimes)
> If dstfolder is another IMAP folder, then getmessagemtime isn't
> implemented, so this throws an error. What should this be, if anything?


I have not followed the entire thread... so sorry if I'm missing something. I
have two things to say here:

1. I assume the issue is trying to sync Gmail to IMAP, isn't it? Then the right
minimal thing to do is, I guess, make syncmessageto_labels do nothing if target
folder does not support labels (i.e. if it is anything different from

When I wrote this, I used mtime very ad-hoc for the GmailMaildir folder. I
didn't have other folders in mind, nor I thought about Gmail - Gmail syncs
either. I should fix this at some point, I guess...

2. Now, I think that we could give 'mtime' a global meaning. On Maildir could
mean unix modification time, and on IMAP mean the internal date. Then have a
unified 'time' field in all cache messages, statusfolder, etc.

I mention this since it seems in the maxage ongoing work you are making use a
lot of use of internal dates...


More information about the OfflineIMAP-project mailing list