Timo,
Thanks for clearing things up. I have finally figured it out (I hope)
INBOX is a special mailbox. Setting inbox=yes changes nothing except where INBOX's location is looked up from. No other mailboxes are affected. Listing/opening RealMails/INBOX might or might not work, depending on configuration. But that shouldn't be an issue, since INBOX is accessed directly as INBOX.
Well in order to list secret/INBOX I had to specify the INBOX location manually and use the dot separator scheme in a "/" separator setup.
mail_location = maildir:/mail/%d/%u/:INBOX=/mail/%d/%u/.INBOX
# Default namespace private { separator = / prefix = }
# Virtual namespace private { prefix = virtual/ separator = / location = virtual:/mail/virtual:INDEX=/mail/%d/%u/virtual
}
# Hidden namespace private { prefix = secret/ separator = / list = no hidden = yes }
My folder layout: .Drafts .INBOX .INBOX.test .Junk .Sent .Trash
dovecot-sql.conf:
# Userdb is fetched with the password check as userdb_ extra variables
password_query = SELECT password, allow_nets,
maildir as userdb_maildir, uid as userdb_uid,
gid as userdb_gid,
CASE '%s' WHEN 'pop3' THEN NULL ELSE 'yes' END AS
userdb_namespace_1_inbox,
CASE '%s' WHEN 'pop3' THEN 'yes' ELSE NULL END AS
userdb_namespace_2_inbox
FROM users WHERE username = '%u'
# Only used when no password is checked for users
# eg. deliver
user_query = SELECT maildir as home, maildir, uid, gid,
CASE '%s' WHEN 'pop3' THEN NULL ELSE 'yes' END AS
namespace_1_inbox,
CASE '%s' WHEN 'pop3' THEN 'yes' ELSE NULL END AS
namespace_2_inbox
FROM users WHERE username = '%u'
I'm using prefetch userdb so I had to put the namespace selection into the user_query as well.
BR, Jos