Resynchronising most folders?
qikom at free.fr
Wed Nov 20 10:09:29 GMT 2013
I've been using offlineimap happily for several years and decided to
try to upgrade to a newer version. (I currently use 6.3.4...)
First, what's the current consensus as far as stability is concerned?
I've never had any problem in the 5 years I've been using offlineimap,
and would very much like to keep it that way.
Anyway, I got the latest version (6.5.5), tried to convert my config
file (to use sqlite and allow creation of imap mailboxes), and used the
It seems most of my mailboxes need to be resynchronised:
$ offlineimap -c offlineimap.conf.new --dry-run
Licensed under the GNU GPL v2+ (v2 or any later version)
Folder INBOX/Remind [acc: Com]:
Syncing INBOX/Remind: IMAP -> Maildir
[DRYRUN] Copy 32 messages from Remind[LocalCom] to RemoteCom
[DRYRUN] Deleting 32 messages (19429:19460) in IMAP[INBOX/Remind]
I did run without --dry-run on a single mailbox, after appropriate backup, and
the messages are indeed uploaded / downloaded, with new UIDs.
Reverting back to version 6.3.4 ended up resynchronising the mailbox again!
Apparently, the problem comes the reverse nametrans option.
nametrans = forward_nametrans
createfolders = True
in the remote and
nametrans = reverse_nametrans
in the local.
The function forward_nametrans and reverse_nametrans are defined in
return re.sub('^INBOX/', '', imap_folder)
if local_folder in ['INBOX', 'Chats', 'Contacts', 'Drafts',
'Emailed Contacts', 'Junk', 'Sent', 'Trash']:
return 'INBOX/' + local_folder
After removing the nametrans option in the local (and putting the create_folder
to False to avoid infinite folder creation), synchronizing worked as expected
(no synchronisation necessary).
Note that the --info flag gave the expected thing:
Remote repository ...
INBOX/Remind -> Remind
Local repository ...
Remind -> INBOX/Remind
So, my questions are:
Does anyone have an idea about what's happening?
(If needs be, I can run more tests...)
Does anyone have an idea about what to do to avoid resynchronising everything
and still keep the create_folder option? (I have several accounts with quite a
few messages. I can live with starting from scratch, but would prefer to avoid
Thanks a lot!
PS: I'm pretty sure the following is a typo in the documentation (in
Take the above examples. If your remote nametrans setting was::
nametrans = lambda folder: re.sub('^INBOX\.', '', folder)
then you will want to have this in your local repository, prepending "INBOX" to any local folder name::
nametrans = lambda folder: 'INBOX' + folder
The last line should be
nametrans = lambda folder: 'INBOX.' + folder
It is not easy, and perhaps not even useful, to explain
briefly what logic is.
-- E. J. Lemmon
More information about the OfflineIMAP-project