Skip to content

Public folders

Create a new public namespace "Public" and a mailbox "Develcow" inside that namespace:

Edit or create data/conf/dovecot/extra.conf, add:

namespace {
  type = public
  separator = /
  prefix = Public/
  location = maildir:/var/vmail/public:INDEXPVT=~/public
  subscriptions = yes
  mailbox "Develcow" {
    auto = subscribe
  }
}

:INDEXPVT=~/public can be omitted if per-user seen flags are not wanted.

The new mailbox in the public namespace will be auto-subscribed by users.

To allow all authenticated users access full to that new mailbox (not the whole namespace), run:

docker compose exec dovecot-mailcow doveadm acl set -A "Public/Develcow" "authenticated" lookup read write write-seen write-deleted insert post delete expunge create
docker-compose exec dovecot-mailcow doveadm acl set -A "Public/Develcow" "authenticated" lookup read write write-seen write-deleted insert post delete expunge create

Adjust the command to your needs if you like to assign more granular rights per user (use -u user@domain instead of -A for example).

Allow authenticated users access to the whole public namespace

To allow all authenticated users access full access to the whole public namespace and its subfolders, create a new dovecot-acl file in the namespace root directory:

Open/edit/create /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/public/dovecot-acl (adjust the path accordingly) to create the global ACL file with the following content:

authenticated kxeilprwts

kxeilprwts equals to lookup read write write-seen write-deleted insert post delete expunge create.

You can use doveadm acl set -u user@domain "Public/Develcow" user=user@domain lookup read to limit access for a single user. You may also turn it around to limit access for all users to "lr" and grant only some users full access.

See Dovecot ACL for further information about ACL.