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