Shared Mailboxes with Multiple Domains
Daniel Miller
dmiller at amfes.com
Thu Feb 13 04:16:05 EET 2020
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 at 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 = </etc/ssl/letsencrypt/live/mail.amfes.com/fullchain.pem
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
driver = prefetch
}
userdb {
args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
verbose_proctitle = yes
protocol lmtp {
mail_plugins = fts fts_solr acl zlib virtual sieve
postmaster_address = postmaster at amfes.com
}
protocol lda {
mail_plugins = fts fts_solr acl zlib virtual sieve
}
protocol imap {
mail_max_userip_connections = 50
mail_plugins = fts fts_solr acl zlib virtual imap_acl imap_zlib
mailbox_alias
}
--
Daniel
More information about the dovecot
mailing list