[Dovecot] Sharing nested folders / maildir variations?

SeattleServer.com lists at seattleserver.com
Fri Jun 1 08:43:30 EEST 2007


Hey all,

So I've got a shared namespace in dovecot where users can, via a  
custom control panel, share their folders into (which creates a  
symlink) in order to allow anyone on their domain to access it.  I  
store mail in maildir.

The issue is that when people share folders, they expect that when  
they make subfolders, those are automatically shared as they are  
contained within it.

According to the Maildir++ specification, "Can folders have  
subfolders, defined in a recursive fashion? The answer is no. If you  
want to have a client with a hierarchy of folders, emulate it. Pick a  
hierarchy separator character, say ":". Then, folder foo/bar is  
subdirectory .foo:bar."  It says some other stupid things too though  
that nobody seems to actually follow, and I've never actually seen  
anything but a '.' used as the delimiter...

The same is true in IMAPdir: "As with Maildir++, submailboxes can not  
be represented in a recursive fashion in the file system. The  
mailbox' representation name will contain the soft hierarchy  
delimiter character dot '.', and all mailboxes must reside in the  
same root level directory."

I don't understand the reasoning behind avoiding recursion,  
honestly.  If somebody wants to enlighten me on that one, it would be  
appreciated.

i.e. instead of:

.Folder/{cur,new,tmp}
.Folder.SubFolder1/{cur,new,tmp}
.Folder.SubFolder1.foo/{cur,new,tmp}
.Folder.SubFolder1.bar/{cur,new,tmp}
.Folder.SubFolder2/{cur,new,tmp}

We'd have:

.Folder/{cur,new,tmp}
.Folder/.SubFolder1/{cur,new,tmp}
.Folder/.SubFolder1/{cur,new,tmp}
.Folder/.SubFolder1/.foo/{cur,new,tmp}
.Folder/.SubFolder1/.bar/{cur,new,tmp}
.Folder/.SubFolder2/{cur,new,tmp}

That would both solve my issue and be a lot more convenient when  
browsing/scripting around maildirs (i.e. "cd ../.foo" vs  
"cd ../.Folder.Subfolder1.foo").

It seems to me that this would be a really easy thing to add support  
for via the config option used to choose between maildir/mbox/dbox.  
Call it rmaildir or somesuch...

Thoughts?

Cheers,
-- 
Casey Allen Shobe | mailto:casey at shobe.info | http://casey.shobe.info
SeattleServer.com, inc. | http://seattleserver.com



More information about the dovecot mailing list