On Mon, 6 Sep 1999, Jukka Zitting wrote:
> Hi all,
>
> I'm implementing maildir support for the GNOME's messaging library
> Camel. Camel uses a provider abstraction for mail stores. A store
> provider object allows a MUA to access mail folders and messages through
> a simple storage-independent API. The folder abstraction has support for
> both messages and subfolders although a provider is not required to
> implement both.
>
> It was quite easy and straightforward to implement the basic message
> handling operations for isolated maildir folders. I'm now wondering
> whether I should also add support for subfolders. It doesn't seem too
> difficult and I already have a few ideas for doing it. I'd like to know
> if anyone has already implemented subfolders in maildirs and how it has
> been done.
Yes, I have implemented maildir subfolders in two separate applications:
webmail CGI client, and a maildir-aware mail filter. I'm also working on
a third application that uses the same layout.
> I searched through the mailing list archives for more information about
> maildir subfolders and found a number of messages discussing the matter.
> There however doesn't seem to be any standard way to implement
> subfolders. I'm asking anyone who's developed or used maildir subfolders
> to share his/her experiences so I can make the Camel library support any
> extensions to the maildir format.
DJB does not have anything to say on this, so it's pretty much everyone on
their own. When I looked at it ages ago, someone else on a mailing list
mentioned how he was working on implementing maildir folders in his imap
client. I don't believe that he actually finished it, but I just took his
rough idea, and ran with it. Afterwards, I've also implemented a
voluntary quota mechanism for maildirs and subfolders on top of the same
layout.
Before you go any further, you might want to take a look at how I did it.
Look at: http://www.inter7.com/sqwebmail/ and
http://www.flounder.net/~mrsam/maildrop/.
In either package you want to take a look at the maildir subdirectory -
it's the same in both packages. The subdirectory includes some
documentation of what I did, plus some source code.
Currently, the mechanism allows for one level of subfolders only. I'm
currently thinking of ways to implement a subfolder hierarchy. For various
reasons, I'm leaning against implementing a subfolder hierarchy using
nested subdirectories. Instead, I'm leaning towards using a hierarchy
separator character in the name of each subfolder, a'la IMAP.