Sorry, that was exactly what I was wondering about. In the meantime I have fooled around with offlineimap to see if I could get a different folder structure.
It now looks like this:
~/Maildir/INBOX ~/Maildir/INBOX.sent ~/Maildir/INBOX.maillist ~/Maildir/INBOX.maillist.binc etc.
And I have binc setup to use IMAPdir depot, but when I connect to it with Thunderbird it finds all my read mail, but none of my new mail. I can see there is mail in ~/Maildir/INBOX/new/ but it doesn't seem to show up in a folder.
Any ideas?
/tomas
The problem is that offlineimap puts flags on the end of mails that it puts in the 'new' directory (the :2, bit). Bincimap doesn't recognise these. To get round this you can write a little script which moves the mails from 'new' to 'cur' - then bincimap will see them.
Or you can change offlineimap's behaviour. I've attached a patch to do this, but only use it if your feeling brave. It works for me, but I wouldn't guarantee anything.
Daniel
--- orig/offlineimap/folder/Maildir.py
+++ mod/offlineimap/folder/Maildir.py
@@ -135,7 +135,7 @@
# We already have it.
self.savemessageflags(uid, flags)
return uid
- if 'S' in flags:
+ if flags:
# If a message has been seen, it goes into the cur
# directory. CR debian#152482, [complete.org #4]
newdir = os.path.join(self.getfullname(), 'cur')
@@ -172,7 +172,8 @@
os.unlink(os.path.join(tmpdir, tmpmessagename))
self.messagelist[uid] = {'uid': uid, 'flags': [],
'filename': os.path.join(newdir, messagename)}
- self.savemessageflags(uid, flags)
+ if flags:
+ self.savemessageflags(uid, flags)
ui.debug('maildir', 'savemessage: returning uid %d' % uid)
return uid
@@ -182,12 +183,7 @@
def savemessageflags(self, uid, flags):
oldfilename = self.messagelist[uid]['filename']
newpath, newname = os.path.split(oldfilename)
- if 'S' in flags:
- # If a message has been seen, it goes into the cur
- # directory. CR debian#152482, [complete.org #4]
- newpath = os.path.join(self.getfullname(), 'cur')
- else:
- newpath = os.path.join(self.getfullname(), 'new')
+ newpath = os.path.join(self.getfullname(), 'cur')
infostr = ':'
infomatch = re.search('(:.*)$', newname)
if infomatch: # If the info string is present..
