Your easiest approach would be to start with one of the existing one-message/one-file drivers in UW imapd; that is, the mh or mx drivers.
mx is preferable, since it fully support IMAP; mh is a compatibility mode driver which has only limited IMAP support. mx uses a separate file, .mxindex, in the directory which stores some mailbox metadata. A design flaw of mx is that it depends upon stat() calls on every message-file in order to obtain other metadata (specifically, message size and message internal date); this is very slow on some systems although it may be alright on Linux. In any case, not much work has been done on mx in several years, so there may be some additional cleanups necessary. In any case, most of what you need is already there and ready for you. I also recommend that you get ahold of the following two books: "Internet Email Protocols: A Developer's Guide" by Kevin Johnson, published by Addison Wesley, ISBN 0-201-43288-9. You will find this book helpful to understand the IMAP protocol better. "Managing IMAP" by Dianna Mullet & Kevin Mullet, published by O'Reilly, ISBN 0-596-00012-X. You'll find this book helpful to understand managing the UW imapd server software (and get a perspective on another server, Cyrus, which may ultimately be where you'll go). On Tue, 23 Sep 2003, Craig Morrison wrote: > I'm running a mail server, which I wrote, that stores all messages in > RFC822 format. Each message is stored in/given a seperate file. IOW, if > a user has 100 messages, there are 100 files in their mail folder. > > What I need to know is what parts of the code to hack so that I can map > my mail store so UW-IMAP can understand it. I'm not asking for handouts > here, just pointers in the right general direction. -- Mark -- http://staff.washington.edu/mrc Science does not emerge from voting, party politics, or public debate. Si vis pacem, para bellum.
