Jason R. Mastaler wrote:
Charlie Brady <[EMAIL PROTECTED]> writes:

Leaving aside for the moment the on-disk storage structure, does
Courier have this restriction - that one can only create folders
called "INBOX.xxx"?

Have you read the Courier FAQ? In particular,
http://www.inter7.com/courierimap/FAQ.html#namespace:
Yeah, I've read that faq, and the RFC. I think Courier is broken. When you ask it to LIST "" *, it serves up exactly what you expect to see despite advertising '* NAMESPACE (("INBOX." ".")) NIL (("shared." "."))'. Furthermore, the belief that a client is wrong for displaying the INBOX namespace is disingenuous. By overloading INBOX, courier is effectively preventing anyone from creating sub-folders of INBOX and calling all clients that do not assume that INBOX.foo is a subfolder of INBOX.

Try: a01 CREATE "INBOX.INBOX.foo" on a courier server which *should* according to the RFCs create a subfolder named foo, in the folder INBOX, in the INBOX namespace, but instead it creates a sub-subfolder foo in the subfolder INBOX in the folder INBOX.

Courier fails to properly implement either of the IMAP rfcs and so the FAQ claiming that a client talking to courier is wrong more is Courier being, well, Courier. Fact of the matter *is* that many clients do not implement the extension correctly either, but not having a correct implementation to work against just makes life more difficult.

So, is this whole argument an IMAP client configuration issue? Perhaps
binc's storage structure doesn't need to be changed at all.
The storage structure problem will still remain, the fact that courier is overloading INBOX as the personal namespace (instead of using #personal., or #user., or any of a million other possibilities) just makes the whole debate more difficult.

The RFC requires that INBOX be INBOX be INBOX, always in the user's personal namespace, it also states that "by convention" if the first character of the first path element is a '#', it's not a name, it's a namespace, not actually part of the folder. The NAMESPACE extension allows the client to list the namespaces available on the server instead of know them externally, one of which is the client's personal space. SELECT "foo" and SELECT "INBOX.foo" should on courier resolve to the same thing if courier had any interest in the namespaces being an extension as opposed to a strict requirement. Replacing INBOX. with #personal, (or anything other than INBOX) makes it far it easier to think about the NAMESPACE extension and you can see why #personal.INBOX should be the same as INBOX which is explicitly defined as a perpetual alias that user's primary inbox.

C=)

--
--------------------------------------------------------------------------
Better the hard truth than the comforting fantasy. -- Carl Sagan
--------------------------------------------------------------------------
Caskey <caskey*technocage.com> /// TechnoCage Inc.
--------------------------------------------------------------------------
A presumption on your part does not constitute an obligation on my part.

Reply via email to