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/[email protected]
* LIST (\Subscribed) "/" shared/[email protected]/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/[email protected]
* 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 = [email protected]
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

Reply via email to