Trying to track down a problem I've been dealing with for a while. Everything else works fine - the problem is with shared mailboxes.
My present, and desired, prefix for the shared namespace is: prefix = INBOX/shared/%%d/%%n/
Some mail clients, particularly Thunderbird and Android's AquaMail, have no problem with this. But other (presumably broken) clients don't show the shared mailboxes. This includes EM Client and Webmail Lite. Actually, Webmail Lite lists the mailboxes in the subscription window, but then the "live" folder list shows "shared" and "shared/domain" but none of the shared mailboxes below the domain.
Changing to: prefix = INBOX/shared/%%u/
Works across all clients - but I'd rather have the domain separation. Testing with telnet ". LIST '' '*'" yields the full list with either config.
The files /var/mail/%d/shared-mailboxes contain entries like: shared/shared-boxes/group/allshared/user@domain.com 1
Below is "doveconf -n" output.
# 2.3.9.3 (9f41b88fa): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.5.9 (db4e9a2f) # OS: Linux 5.3.0-28-generic x86_64 Ubuntu 18.04.4 LTS # Hostname: bubba.amfes.lan auth_cache_size = 4 k auth_master_user_separator = * auth_mechanisms = plain login auth_policy_hash_nonce = # hidden, use -P to show it auth_policy_hash_truncate = 8 auth_policy_server_api_header = Authorization: Basic d2ZvcmNlOnVsdHJhLXNlY3JldC1zZWN1cmUtc2FmZQ default_login_user = nobody default_vsz_limit = 2 G disable_plaintext_auth = no imap_client_workarounds = tb-extra-mailbox-sep imap_idle_notify_interval = 29 mins listen = * login_trusted_networks = 192.168.0.0/24 mail_attachment_hash = %{sha512} mail_plugins = fts fts_solr acl zlib virtual mail_prefetch_count = 10 mail_shared_explicit_inbox = yes managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext mdbox_rotate_size = 20 M namespace archives { list = children location = mdbox:/var/mail/%d/%n/Archives/mdbox mailbox Unsorted { auto = no special_use = \Archive } prefix = INBOX/Archives/ separator = / subscriptions = no type = private } namespace inbox { hidden = no inbox = yes list = yes location = mailbox "Deleted Messages" { auto = no autoexpunge = 30 days special_use = \Trash } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Items" { auto = no special_use = \Sent } mailbox "Sent Messages" { auto = no special_use = \Sent } mailbox Trash { auto = subscribe autoexpunge = 30 days special_use = \Trash } prefix = INBOX/ separator = / subscriptions = no type = private } namespace lists { list = children location = mdbox:/var/mail/%d/%n/Lists/mdbox prefix = INBOX/Lists/ separator = / subscriptions = no type = private } namespace subscriptions { hidden = yes list = no location = prefix = subscriptions = yes } namespace usershares { list = children location = sdbox:/var/mail/%%d/%%n/sdbox:NO-NOSELECT prefix = INBOX/shared/%%d/%%n/ separator = / subscriptions = no type = shared } namespace virtual { list = children location = virtual:/var/mail/%d/%n/virtual mailbox Flagged { comment = All my flagged messages special_use = \Flagged } prefix = INBOX/virtual/ separator = / subscriptions = no } passdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile acl_shared_dict = file:/var/mail/%d/shared-mailboxes fts = solr fts_autoindex = yes fts_autoindex_exclude = \Trash fts_autoindex_exclude2 = \Junk fts_autoindex_exclude3 = \Spam fts_enforced = no fts_index_timeout = 20s fts_solr = url=http://127.0.0.1:8983/solr/dovecot/ mailbox_alias_new = Sent Messages mailbox_alias_new2 = Sent Items mailbox_alias_new3 = Deleted Messages mailbox_alias_old = Sent mailbox_alias_old2 = Sent mailbox_alias_old3 = Trash sieve = file:~/sieve;active=~/.dovecot.sieve } protocols = imap lmtp sieve service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { group = mail mode = 0600 user = vmail } } service dict { unix_listener dict { group = mail mode = 0660 user = vmail } } service imap-login { process_min_avail = 10 service_count = 1 } service imap-postlogin { executable = script-login /usr/local/etc/dovecot/post-login.sh user = $default_internal_user } service imap { executable = imap imap-postlogin vsz_limit = 4 G } service indexer-worker { process_limit = 3 } service lmtp { process_min_avail = 5 unix_listener /var/spool/postfix/private/dovecot-lmtp { group = mail mode = 0666 user = vmail } } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } process_min_avail = 0 service_count = 1 } ssl_cert =
-- Daniel