[Dovecot] Namespace "hidden" option not working?
I either misunderstand the namespace hidden option, or else perhaps it's not working correctly in 1.0.5?
dovecot.conf
# default namespace namespace private { separator = / prefix = inbox = yes hidden = yes }
# for backwards compatibility: namespace private { separator = . prefix = INBOX. inbox = yes }
Then login and test
s6jh LIST "" "*" SND: <<< len(939) Comp_len(118) Time:0.137985
- LIST (\HasNoChildren) "/" "Diary"
- LIST (\HasNoChildren) "/" "Spam"
- LIST (\HasNoChildren) "/" "Sent"
- LIST (\HasNoChildren) "/" "Archive"
- LIST (\HasNoChildren) "/" "Sent Items"
- LIST (\HasNoChildren) "/" "Subdir"
- LIST (\HasNoChildren) "/" "Junk E-mail"
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "Drafts"
- LIST (\HasNoChildren) "/" "Deleted Items"
- LIST (\HasNoChildren) "/" "INBOX"
- LIST (\HasNoChildren) "." "INBOX.Diary"
- LIST (\HasNoChildren) "." "INBOX.Spam"
- LIST (\HasNoChildren) "." "INBOX.Sent"
- LIST (\HasNoChildren) "." "INBOX.Archive"
- LIST (\HasNoChildren) "." "INBOX.Sent Items"
- LIST (\HasNoChildren) "." "INBOX.Subdir"
- LIST (\HasNoChildren) "." "INBOX.Junk E-mail"
- LIST (\HasNoChildren) "." "INBOX.Trash"
- LIST (\HasNoChildren) "." "INBOX.Drafts"
- LIST (\HasNoChildren) "." "INBOX.Deleted Items"
- LIST (\HasChildren) "." "INBOX"
The idea was to support an old client using Courier like access whilst still letting new clients access using the normal process
Ed W
On Wed, 3 Oct 2007, Ed W wrote:
I either misunderstand the namespace hidden option, or else perhaps it's not working correctly in 1.0.5?
dovecot.conf
# default namespace namespace private { separator = / prefix = inbox = yes hidden = yes }
# for backwards compatibility: namespace private { separator = . prefix = INBOX. inbox = yes }
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
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?).
Best, Ben
On Wed, 3 Oct 2007, Ed W wrote:
I either misunderstand the namespace hidden option, or else perhaps it's not working correctly in 1.0.5?
dovecot.conf
# default namespace namespace private { separator = / prefix = inbox = yes hidden = yes }
# for backwards compatibility: namespace private { separator = . prefix = INBOX. inbox = yes }
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
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?).
Best, Ben
Just to throw in one more comment. In the dovecot.conf file it also mentions that you should use the same separator between namespaces. Otherwise you might confuse the client.
Jeff
Just to throw in one more comment. In the dovecot.conf file it also mentions that you should use the same separator between namespaces. Otherwise you might confuse the client.
I can confirm that Outlook Express and Thunderbird on windows seem largely unaffected even using *both* at the same time. I have been alternating back and forwards with no ill effects other than some folder subscription winges. You appear to need to close down and re-open each program sometimes to make it switch over
Ed W
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?
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??
Ed W
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
participants (3)
-
Benjamin R. Haskell
-
Ed W
-
Jeff Grossman