No implicit INBOX with mailbox_list_index = yes?

Karsten Heiken heiken at luis.uni-hannover.de
Mon May 23 16:16:34 UTC 2016


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


More information about the dovecot mailing list