Hello all,
I am running a Dovecot Cluster (2.2.13 and 2.2.23 show the same behaviour) using dsync replication (as described here: http://wiki.dovecot.org/Replication). In addition to that I allow users to share mailboxes using IMAP ACLs.
My problem is that I need to set "mail_shared_explicit_inbox = yes" if I want my users to see Inboxes of other users. If I leave mail_shared_explicit_inbox = no, then the user cannot see any Inboxes of other users:
- LIST (\Subscribed \UnMarked) "/" Sent
- LIST (\Subscribed \UnMarked) "/" Drafts
- LIST (\Subscribed) "/" INBOX
When I set explicit_inbox = yes, then I can see the shared mailboxes:
- LIST (\Subscribed \UnMarked) "/" Sent
- LIST (\Subscribed \UnMarked) "/" Drafts
- LIST (\NonExistent) "/" shared
- LIST (\NonExistent) "/" shared/bob@luis.uni-hannover.de
- LIST (\Subscribed) "/" shared/bob@luis.uni-hannover.de/INBOX
- LIST (\Subscribed) "/" INBOX
After some digging I found out that if I set mailbox_list_index = NO, then everything works even without explicit_inbox:
- LIST (\Subscribed) "/" Sent
- LIST (\Subscribed) "/" Drafts
- LIST (\NonExistent) "/" shared
- LIST (\Subscribed) "/" shared/bob@luis.uni-hannover.de
- LIST (\Subscribed) "/" INBOX
Since we are migrating from Cyrus to Dovecot, our users are used to the behaviour of explicit_inbox = no, so I would like to keep it that way. I would simply leave mailbox_list_index disabled, but the comment states it is required for NOTIFY, which in turn is required by the rolling replication -- am I corrent?
# Mailbox list indexes can be used to optimize IMAP STATUS commands. They are # also required for IMAP NOTIFY extension to be enabled. # mailbox_list_index = yes
What am I doing wrong or don't understand?
Thanks, Karsten
-----8<-----
# doveconf -n # 2.2.13: /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-44-pve x86_64 Debian 8.1 default_vsz_limit = 512 M dict { acl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } lmtp_rcpt_check_quota = yes mail_gid = 7777 mail_location = maildir:%h/Maildir mail_plugins = " zlib quota acl notify" mail_uid = 7777 mailbox_list_index = 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 ihave imapflags notify namespace { hidden = no ignore_on_failure = no inbox = no list = children location = maildir:/var/vmail/%%d/%%n/Maildir:INDEXPVT=~/shared/%%u prefix = shared/%%u/ separator = / subscriptions = yes type = shared } namespace inbox { hidden = no inbox = yes list = yes location = mailbox 30dTrash { auto = subscribe special_use = \Junk } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Trash { auto = subscribe special_use = \Trash } prefix = separator = / subscriptions = yes type = private } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { acl = vfile:/etc/dovecot/global-acls:cache_secs=5 acl_shared_dict = proxy::acl quota = maildir:Postfach-Limit quota_grace = 2%% quota_rule = *:storage=8G quota_status_nouser = DUNNO quota_status_overquota = 552 5.2.2 Mailbox is full quota_status_success = DUNNO sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_extensions = +notify +imapflags sieve_max_redirects = 25 zlib_save = gz zlib_save_level = 6 } postmaster_address = postmaster@luis.uni-hannover.de protocols = " imap lmtp sieve pop3 sieve" replication_dsync_parameters = -d -l 30 -U -n inbox service auth { unix_listener auth-userdb { group = vmail user = vmail } } service dict { unix_listener dict { group = vmail mode = 0660 user = vmail } } service doveadm { inet_listener { port = 24245 } } service imap-login { process_min_avail = 16 service_count = 0 } service imap { executable = imap postlogin process_limit = 30000 } service lmtp { inet_listener lmtp { port = 24 } } service managesieve-login { inet_listener sieve { port = 4190 } } service managesieve { process_limit = 1024 } service pop3-login { process_min_avail = 4 service_count = 0 } service pop3 { process_limit = 2500 } service postlogin { executable = script-login -d rawlog /usr/local/bin/dovecot-postlogin.sh } service quota-status { client_limit = 1 executable = quota-status -p postfix inet_listener { port = 12340 } } ssl_cert = :bytes=8589934592 driver = ldap } verbose_proctitle = yes protocol lmtp { mail_plugins = " zlib quota acl notify sieve quota" } protocol lda { mail_plugins = " zlib quota acl notify sieve" } protocol imap { mail_max_userip_connections = 50 mail_plugins = " zlib quota acl notify imap_quota imap_acl" } protocol pop3 { mail_max_userip_connections = 10 mail_plugins = " zlib quota acl notify" }
-- Karsten Heiken Leibniz Universität IT Services Kommunikationssysteme E-Mail, XMPP, Kalender Schloßwender Str. 5 D-30159 Hannover