On Wed, 3 Oct 2007, Ed W wrote:
Hi
You shouldn't have inbox = yes on more than one namespace. From the comments in my dovecot.conf:
# There can be only one INBOX, and this setting defines which namespace # has it. #inbox = yes
Sure. However, if only one has the INBOX, then doesn't this rather break the whole point of having the backwards compatible access to the INBOX? Am I missing the point?
The namespace provides backwards compatible access to the folders under "INBOX.". It doesn't have anything to do with the actual INBOX (an IMAP "special" name), which is still specified (for dovecot) by mail_location.
I suspect that inbox=yes just tells dovecot what separator to return in:
- LIST (\HasChildren) "(separator)" "INBOX" by associating INBOX with a separator= setting.
I think you're also hiding the wrong namespace. You don't want to advertise the backwards-compatibility namespace to clients. If they're already using the old one, they can still use it, but you don't want new clients to start using it. Namespace-aware clients will adapt (in theory?).
Possibly.
Actually I decided that personally I prefer to have everything under "INBOX.", because all the clients I commonly use then nest the folders under INBOX (which I quite like). However, OE and Outlook are too dumb to figure this out and it's pointless telling all our customers to set the folder prefix when we could just support it working without needing to change anything...
Anyway, the original question still stands! How come all my folders from both namespaces are being listed??
My guess is that you can't hide a namespace with an empty prefix. I haven't checked the source, but I suspect the logic of the LIST'ing process is along the lines of:
List a mailbox if the requested pattern matches "(prefix)(mailbox)".
Then, "*" can be seen as "(empty-prefix)*", so "(mailbox)" matches.
It seems logical. I don't see another way Dovecot could infer that the empty-prefix namespace was being requested.
Best, Ben