Status of IMAP Protocol Support in James

The IMAP support in James is completely experimental. There are two IMAP proposals in the CVS. Both contain code that should be reviewed, and neither is probably what we want to end up with.

Original IMAP proposal. This had some work done on it by Peter Goldstein, as can be seen from the CVS logs.

imap2 is a partial implementation of IMAP.

  1. No cut-and-paste code

  2. Simple architecture

  3. Solid, easy to use test harness and test suite (can make changes and test without needing to start James - speeds up development iterations)

The state of the code is that all commands are at least partially funcitonal, with basic protocol tests. I can connect to James-IMAP using KMail, check mail, move mail around, copy, etc.

The huge caveat is that the mail store is not persistent at the moment, it just held in memory. This is nice for testing, but not much good in real life. Discussion should take place regarding James v3 mail stores to ensure that all necessary IMAP features are supported.


Instructions for building James with IMAP support

Building the imap2 proposal

Running the tests

Building IMAP2 proposal


Known defects (also check bugzilla):

JamesIMAP (last edited 2009-09-20 23:31:54 by localhost)