X-OfflineIMAP header and Exchange

Dominic LoBue dom.lobue at gmail.com
Thu Feb 4 07:46:43 GMT 2010

On Wed, Feb 3, 2010 at 6:52 AM, John Goerzen <jgoerzen at complete.org> wrote:
> Dominic LoBue wrote:
>> I am working on doing a rewrite of OfflineIMAP, and since John hasn't
>> responded to your question yet I'll field it.
> Hi Dominic,
> I wasn't aware of that, but I have repeatedly tried to hand of "maintainer
> of OfflineIMAP" mantle to someone else.  What's the status of your project?
>  I would be happy to hand it off entirely to someone qualified and
> dedicated.


I actually sent you an email about this a month or two back, but I
never heard back from you.

The current status is I am in the low-level design stage. You know,
"measure twice, cut once" and all that. I already have the high-level
concept in my head of how I want to approach the problem, what I'm
specifically working on is figuring out how best to implement my ideas
with the "lessons learned" already in OfflineIMAP. I also have
implemented IDLE in imaplib, twisted's IMAP4Client, and another IMAP
library that I like.

My goals in the rewrite are to make OfflineIMAP safer (no lost
emails), more robust, inclusion of all "lessons learned" already in
OfflineIMAP, and able to recover from failure and unexpected data.

I plan to do this in a number of ways:
-Make sync process more granular: per-message syncing instead of per-folder.
-Switch metadata format from a bunch of regular text files to a single
bsddb database.
-Use worker design pattern.

There's more, but that's just off the top of my head. I also have a
bunch of other improvements and features I plan to add: NTLM
authentication, support for keyring module so passwords aren't stored
in plaintext (http://pypi.python.org/pypi/keyring/0.2), inotify, IDLE,
support for moving mail between folders (should save a lot of
bandwidth for people who move mail between folders).

Other features I want to add, but are a bit on the far side of realistic:
-SASL support (libgsasl)
-mail archival feature (mail older than X days is permanently moved
off the server and moved into size efficient container)
-provide a maildir API for mail clients (works with "only sync x days
worth of mail" feature so that if a client wants to read a message
that is older than x days, OfflineIMAP downloads it).

>> Before I start responding to your questions though, let me begin by
>> saying that I am still unsure myself of why exactly the X-OfflineIMAP
>> header is constructed the way it is. I searched through the mailing
> Primarily because it seemed easy and safe to start with.  Exchange is rather
> broken in what it's doing, but adapting to it shouldn't hurt anything.  That
> said, I work on this and many other projects on a volunteer basis and
> haven't had the time to work around this bug in a server that I never use
> myself.
> I haven't had the chance to review the gmane links just now though.
> If you develop a well-tested patch, I would be happy to apply it.
> Thanks,
> -- John

Considering how much work I have cut out for myself in the rewrite, I
don't plan on backporting any of the new features.

Dominic LoBue

More information about the OfflineIMAP-project mailing list