Questions on supporting Shared Mailboxes using imapc://

Nathan Coulson nathan at bravenet.com
Fri Nov 6 17:37:53 UTC 2015


On 2015-10-09 10:33 AM, Nathan Coulson wrote:
>
> I was not able to get a shared mailbox setup working using imapc. 
> Tested using mailboxes on the same server, as well as other servers.
>
> We are using dovecot 2.2.10 from Centos 7, following the guide at 
> http://wiki2.dovecot.org/SharedMailboxes/ClusterSetup
>
>
> imapc_host=192.168.5.5 #(Local dovecot server)
> imapc_master_user= %u
> imapc_password=TempPass
> #imapc_user=test2 at example.com # Added for testing.
> namespace {
>   type = shared
>   separator = /
>   prefix = shared/%%u/
>   list = children
>   location = imapc:~/shared/%%u/
> }
> namespace { # used as a control to verify that shared mailboxes work
>   type = shared
>   separator = /
>   prefix = shared2/%%u/
>   list = children
>   location = sdbox:%%h:INDEXPVT=~/shared2/%%u
> }
>
>
> dict {
>   acl = mysql:/etc/dovecot/dovecot-sql_aggelos_shares.conf.ext
> }
>
> plugin {
>   acl = vfile
>   acl_shared_dict = proxy::acl
> }
>
> mail_plugins = acl
>
> protocol imap {
>   mail_plugins = acl imap_acl
> }
>
> passdb {
>   driver = sql
>   args = /etc/dovecot/dovecot-sql.conf.ext
> }
>
>
> passdb { # for master user logins
>   driver = sql
>   args = /etc/dovecot/dovecot-sql_aggelos_aclmaster.conf.ext
>   master = yes
>   pass = yes
> }
>
> userdb {
>   driver = sql
>   args = /etc/dovecot/dovecot-sql.conf.ext
> }
>
>
>
>
>
> I can login using test2 at example.com*test at example.com (and see all of 
> test2's email), and it looks like it authenticates ok via imap, but 
> shared never shows up.  No issues using shared2 which uses direct 
> access to the mailbox
>
>
> doveadm acl debug -u test at example.com shared/test2 at example.com (Fails, 
> uses imapc)
>
> doveadm(test at example.com): Info: Mailbox 'INBOX' is in namespace 
> 'shared/test2 at example.com/'
> doveadm(test at example.com): Info: Mailbox path: 
> /misc/1/2/mail/test at example.com-4/shared/test2 at example.com/.INBOX
> doveadm(test at example.com): Info: All message flags are shared across 
> users in mailbox
> doveadm(test at example.com): Info: User test at example.com has no rights 
> for mailbox
> doveadm(test at example.com): Error: User test at example.com is missing 
> 'lookup' right
> doveadm(test at example.com): Info: Mailbox shared/test2 at example.com is 
> NOT visible in LIST
>
>
>
> doveadm acl debug -u test at example.com shared/test2 at example.com/Junk 
> (Fails, contains a folder that exists)
> doveadm(test at example.com): Info: Mailbox 'Junk' is in namespace 
> 'shared/test2 at example.com/'
> doveadm(test at example.com): Info: Mailbox path: 
> /misc/1/2/mail/test at example.com-4/shared/test2 at example.com/.Junk
> doveadm(test at example.com): Info: All message flags are shared across 
> users in mailbox
> doveadm(test at example.com): Info: User test at example.com has no rights 
> for mailbox
> doveadm(test at example.com): Error: User test at example.com is missing 
> 'lookup' right
> doveadm(test at example.com): Info: Mailbox shared/test2 at example.com/Junk 
> is NOT visible in LIST
>
>
> doveadm acl debug -u test at example.com shared/test2 at example.com/z 
> (Fails,  contains a folder that does not exist.  Expected result)
>
> doveadm(test at example.com): Error: Mailbox 'z' in namespace 
> 'shared/test2 at example.com/' doesn't exist in 
> /misc/1/2/mail/test at example.com-4/shared/test2 at example.com/.z
>
>
>
> doveadm acl debug -u test at example.com shared2/test2 at example.com 
> (Works, using direct storage)
>
> doveadm(test at example.com): Info: Mailbox 'INBOX' is in namespace 
> 'shared2/test2 at example.com/'
> doveadm(test at example.com): Info: Mailbox path: 
> /misc/1/2/mail/test2 at example.com-87/mailboxes/INBOX/dbox-Mails
> doveadm(test at example.com): Info: Per-user private flags in mailbox: \Seen
> doveadm(test at example.com): Info: User test at example.com has rights: 
> lookup read write-seen
> doveadm(test at example.com): Info: Mailbox found from dovecot-acl-list
> doveadm(test at example.com): Info: User test2 at example.com found from ACL 
> shared dict
> doveadm(test at example.com): Info: Mailbox shared2/test2 at example.com is 
> visible in LIST
>
>
>
> It feels like the acl information in the vfiles is not available when 
> using imapc.
>
>
>
> Our setup is as follows: (Currently does not use Dovecot Director, but 
> has the same issues where shared mailboxes may not be local on the 
> server)
> * Front servers, that are running dovecot (proxy to backend servers)
> * Backend Servers, each handle their own local users.
>
>
> Thank you
>

Adding to this, Is it possible to set the location for the VFile's when 
using imapc?  If so, I believe that would allow this to work. (Available 
over NFS [later GFS2] on remote servers,  Technically we could also use 
the storage directly but I was concerned about 2 dovecot processes on 
different servers using the same sdbox storage location).


-- 
Nathan Coulson
System Administrator for Bravenet
www.bravenet.com
nathan at bravenet.com




More information about the dovecot mailing list