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):

external IMAP

I've been using James for quite some time now. I really wanted IMAP support, but I'm a bit afraid of using the experimental versions. So I installed DBMail and used that as IMAP storage. The nice thing is that DBMail also stores it's data in MySQL (or other db). Of course, if you use this, you're not using a 100% java solution, and it won't be very portable. And you'll have more trouble configuring the users. I'll clean up the mailet code a bit and make it available. If you're interested, let me know:

Open Zimbra Java IMAP Code as Reference

So the Zimbra Java IMAP mail server is open source. Would it make sense to take a look at the Zimbra source code to see if it could help with the James IMAP development. They have a production implementation of IMAP running now for their solution. It might be possible to integrate the source code directly, or at the very least use it as a working reference. Thoughts? kevbaker at yahoo dot com

See also: Online Demo Zimbra CVS Open Source Downloads

JamesIMAP (last edited 2009-09-20 22:58:10 by localhost)