{ return "# Mailbox sharing is not enabled" if (($dovecot{'SharedMailbox'} || 'disabled') eq 'disabled') && (($dovecot{'PublicMailbox'} || 'disabled') eq 'disabled'); push @plugins, 'acl'; push @imap_plugins, 'imap_acl'; my $common =<<'_EOF'; mail_access_groups = sharedmailbox service dict { unix_listener dict { mode = 0660 group = sharedmailbox } } service auth { unix_listener auth-userdb { mode = 0660 group = sharedmailbox } } service imap { executable = imap imap-postlogin } service imap-postlogin { executable = script-login -d /usr/bin/imap-postlogin unix_listener imap-postlogin { } } namespace { type = private separator = / prefix = inbox = yes } _EOF { my $shared_mb = "\n# SharedMailbox is disabled\n"; my $public_mb = "\n# PublicMailbox is disabled\n"; if (($dovecot{'SharedMailbox'} || 'disabled') eq 'enabled'){ $shared_mb =<<'_EOF'; namespace { type = shared separator = / prefix = shared/%%u/ location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u subscriptions = no list = children } _EOF } if (($dovecot{'PublicMailbox'} || 'disabled') eq 'enabled'){ $public_mb =<<'_EOF'; namespace { type = public separator = / prefix = public/ location = maildir:/home/e-smith/files/public subscriptions = no list = children } _EOF } my $acl =<<'_EOF'; plugin { acl_shared_dict = file:/home/e-smith/db/dovecot/sharedmailbox.db } plugin { acl = vfile } plugin { acl_anyone = allow } _EOF push @conf, $common, $shared_mb, $public_mb, $acl; $OUT .= ''; }