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 at luis.uni-hannover.de
> * LIST (\Subscribed) "/" shared/bob at 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 at 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 at 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 = </etc/dovecot/private/fullchain.pem
ssl_key = </etc/dovecot/private/privkey.pem
syslog_facility = local6
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
default_fields = home=/var/vmail/%Ld/%Ln quota_rule=*: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