Hello, I'm trying to set up a public folder called TestFolder. I'm getting this error: #doveadm acl get -A "Public/TestFolder" doveadm(username at example.com): Error: Can't open mailbox Public/TestFolder: Mailbox doesn't exist: Public/TestFolder Username ID Global Rights # ls -ld /var/vmail/public drwx------ 4 vmail vmail 512 Apr 15 23:17 public/ # ls -ld public/.TestFolder drwx------ 5 vmail vmail 512 Apr 15 23:20 .TestFolder/ My goal is a public namespace under which I have several folders for internal communications that users can access, TestFolder being an example. Suggestions welcome. Thanks. Dave. #doveconf -n # 2.3.10 (0da0eff44): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.5.10 (bf8ef1c2) # OS: FreeBSD 12.1-RELEASE-p3 amd64 # Hostname: mail.example.com auth_cache_size = 10 M auth_default_realm = example.com auth_mechanisms = plain login auth_realms = example.com dict { lastlogin = mysql:/usr/local/etc/dovecot/dovecot-last-login.conf } first_valid_gid = 2100 first_valid_uid = 2100 hostname = mail.example.com imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags imap_idle_notify_interval = 1 mins last_valid_gid = 2100 last_valid_uid = 2100 lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lda_original_recipient_header = X-Original-To listen = xxx.xxx.xxx.xxx lmtp_rcpt_check_quota = yes log_timestamp = "%Y-%m-%d %H:%M:%S " mail_access_groups = vmail mail_fsync = never mail_gid = vmail mail_home = /var/vmail/mailboxes/%d/%n mail_location = dbox:~/mail mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt mail_privileged_group = vmail mail_server_admin = mailto:postmaster at example.com mail_uid = vmail 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 index ihave duplicate mime foreverypart extracttext spamtest spamtestplus virustest editheader imapflags notify imapsieve vnd.dovecot.imapsieve namespace { location = sdbox:/var/vmail/public/:CONTROL=~/mail/public:INDEX=~/mail/public:INDEXPVT=~/mail/public prefix = Public/ separator = / subscriptions = yes type = public } namespace { hidden = no list = yes location = maildir:/var/vmail/shared/office/.Maildir:CONTROL=~/.Maildir/control/office:INDEX=~/.Maildir/index/office prefix = shared/%%u/ separator = / subscriptions = yes type = shared } namespace inbox { inbox = yes location mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Spam { auto = subscribe autoexpunge = 30 days special_use = \Junk } mailbox Trash { auto = subscribe autoexpunge = 30 days special_use = \Trash } prefix separator = / type = private } passdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 acl_anyone = allow fts = lucene fts_autoindex = yes fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Trash fts_autoindex_exclude3 = \Spam fts_autoindex_max_recent_msgs = 80 fts_index_timeout = 90 fts_lucene = whitespace_chars=@. normalize no_snowball imapsieve_mailbox1_before file:/usr/local/lib/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Spam imapsieve_mailbox2_before = file:/usr/local/lib/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Spam imapsieve_mailbox2_name = * last_login_dict = proxy::lastlogin last_login_key = # hidden, use -P to show it mail_crypt_curve = prime256v1 mail_crypt_global_private_key = # hidden, use -P to show it mail_crypt_global_public_key = # hidden, use -P to show it mail_crypt_save_version = 2 mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = count:User quota quota_exceeded_message = Storage quota for this account has been exceeded, please try again later. quota_grace = 10%% quota_rule2 = Trash:ignore quota_status_nouser = DUNNO quota_status_overquota = 552 5.2.2 Mailbox is full quota_status_success = DUNNO quota_vsizes = true quota_warning = storage=100%% quota-exceeded 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=90%% quota-warning 90 %u quota_warning4 = storage=85%% quota-warning 85 %u quota_warning5 = storage=75%% quota-warning 75 %u sieve = file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve sieve_before = /var/vmail/sieve/global/spam-global.sieve sieve_extensions = +notify +imapflags +spamtest +spamtestplus +virustest +editheader sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute +vnd.dovecot.environment sieve_max_redirects = 30 sieve_max_script_size = 1M sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_spamtest_max_header = X-Spamd-Result: default: [[:alnum:]]+ \[-?[[:digit:]]+\.[[:digit:]]+ / (-?[[:digit:]]+\.[[:digit:]]+)\] sieve_spamtest_status_header = X-Spamd-Result: default: [[:alnum:]]+ \[(-?[[:digit:]]+\.[[:digit:]]+) / -?[[:digit:]]+\.[[:digit:]]+\] sieve_spamtest_status_type = score sieve_user_log = /var/vmail/sieve/sieve_error.log sieve_virustest_status_header = X-Virus-Scan: Found to be (.+)\. sieve_virustest_status_type = text sieve_virustest_text_value1 = clean sieve_virustest_text_value5 = infected trash = /usr/local/etc/dovecot/trash.conf welcome_script = welcome %n postmaster@%d welcome_wait = yes } postmaster_address = postmaster at example.com protocols = imap lmtp sieve sendmail_path = /usr/local/sbin/sendmail service auth-worker { user = vmail } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { group = vmail mode = 0666 user = vmail } } service dict { unix_listener dict { mode = 0600 user = vmail } user = root } service imap-login { inet_listener imap { port = 143 } process_min_avail = 1 } service imap { executable = imap } service lmtp { executable = lmtp unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { address = 172.16.21.3 port = 4190 } } service quota-status { client_limit = 1 executable = quota-status -p postfix unix_listener /var/spool/postfix/private/dovecot-quota { group = postfix mode = 0660 user = postfix } } service quota-warning { executable = script /usr/local/etc/dovecot/quota-warning.sh unix_listener quota-warning { group = vmail mode = 0660 user = vmail } user = vmail } service stats { unix_listener stats-reader { group = vmail mode = 0660 user = vmail } unix_listener stats-writer { group = vmail mode = 0660 user = vmail } } service welcome { executable = script /usr/local/etc/dovecot/welcome.sh unix_listener welcome { user = vmail } user = vmail } ssl = required ssl_cert = </usr/local/etc/ssl/acme.sh/example.com/fullchain.crt ssl_cipher_list = EECDH+AESGCM:EDH+AESGCM ssl_curve_list = P-256 ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_min_protocol = TLSv1.2 ssl_options = no_ticket ssl_prefer_server_ciphers = yes userdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } protocol lmtp { mail_fsync = optimized mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt sieve } protocol lda { mail_fsync = optimized mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt sieve } protocol imap { mail_max_userip_connections = 20 mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt imap_acl imap_quota imap_sieve imap_zlib last_login quota welcome } protocol sieve { info_log_path = /var/log/dovecot/dovecot-sieve.log log_path = /var/log/dovecot/dovecot-sieve-errors.log } mail_home = /var/vmail/mailboxes/%d/%n mail_location = dbox:~/mail
On 25/4/20 10:35 am, David Mehler wrote:> I'm trying to set up a public folder called TestFolder. I'm getting this error: > > #doveadm acl get -A "Public/TestFolder" > doveadm(username at example.com): Error: Can't open mailbox > Public/TestFolder: Mailbox doesn't exist: Public/TestFolder > Username ID Global Rights > > # ls -ld public/.TestFolder > drwx------ 5 vmail vmail 512 Apr 15 23:20 .TestFolder/Try renaming the above folder to TestFolder (remove the dot).> namespace { > location = sdbox:/var/vmail/public/:CONTROL=~/mail/public:INDEX=~/mail/public:INDEXPVT=~/mail/public > prefix = Public/ > separator = / > subscriptions = yes > type = public > }-- Mark Constable 0419 530 037 https://spiderweb.com.au
On 25/4/20 10:35 am, David Mehler wrote:> #doveadm acl get -A "Public/TestFolder" > doveadm(username at example.com): Error: Can't open mailbox > Public/TestFolder: Mailbox doesn't exist: Public/TestFolder > Username ID Global Rights > > # ls -ld public/.TestFolder > drwx------ 5 vmail vmail 512 Apr 15 23:20 .TestFolder/Try renaming the above folder to TestFolder (remove the dot).> namespace { > location = sdbox:/var/vmail/public/:CONTROL=~/mail/public:INDEX=~/mail/public:INDEXPVT=~/mail/public > prefix = Public/ > separator = / > subscriptions = yes > type = public > }-- Mark Constable 0419 530 037 https://spiderweb.com.au -- Mark Constable 0419 530 037 https://spiderweb.com.au
On April 25, 2020 2:35:20 AM GMT+02:00, David Mehler <dave.mehler at gmail.com> wrote:>Hello, > >I'm trying to set up a public folder called TestFolder. I'm getting >this error: > >#doveadm acl get -A "Public/TestFolder" >doveadm(username at example.com): Error: Can't open mailbox >Public/TestFolder: Mailbox doesn't exist: Public/TestFolder >Username ID Global RightsHave you enabled debug log and what does it show when you run this command?># ls -ld /var/vmail/public >drwx------ 4 vmail vmail 512 Apr 15 23:17 public/ > ># ls -ld public/.TestFolder >drwx------ 5 vmail vmail 512 Apr 15 23:20 .TestFolder/ > >My goal is a public namespace under which I have several folders for >internal communications that users can access, TestFolder being an >example. > >Suggestions welcome. >Thanks. >Dave. > >#doveconf -n ># 2.3.10 (0da0eff44): /usr/local/etc/dovecot/dovecot.conf ># Pigeonhole version 0.5.10 (bf8ef1c2) ># OS: FreeBSD 12.1-RELEASE-p3 amd64 ># Hostname: mail.example.com >auth_cache_size = 10 M >auth_default_realm = example.com >auth_mechanisms = plain login >auth_realms = example.com >dict { > lastlogin = mysql:/usr/local/etc/dovecot/dovecot-last-login.conf >} >first_valid_gid = 2100 >first_valid_uid = 2100 >hostname = mail.example.com >imap_client_workarounds = delay-newmail tb-extra-mailbox-sep >tb-lsub-flags >imap_idle_notify_interval = 1 mins >last_valid_gid = 2100 >last_valid_uid = 2100 >lda_mailbox_autocreate = yes >lda_mailbox_autosubscribe = yes >lda_original_recipient_header = X-Original-To >listen = xxx.xxx.xxx.xxx >lmtp_rcpt_check_quota = yes >log_timestamp = "%Y-%m-%d %H:%M:%S " >mail_access_groups = vmail >mail_fsync = never >mail_gid = vmail >mail_home = /var/vmail/mailboxes/%d/%n >mail_location = dbox:~/mail >mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual >welcome zlib mail_crypt >mail_privileged_group = vmail >mail_server_admin = mailto:postmaster at example.com >mail_uid = vmail >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 index ihave duplicate mime foreverypart >extracttext spamtest spamtestplus virustest editheader imapflags >notify imapsieve vnd.dovecot.imapsieve >namespace { >location >sdbox:/var/vmail/public/:CONTROL=~/mail/public:INDEX=~/mail/public:INDEXPVT=~/mail/public > prefix = Public/ > separator = / > subscriptions = yes > type = public >} >namespace { > hidden = no > list = yes >location >maildir:/var/vmail/shared/office/.Maildir:CONTROL=~/.Maildir/control/office:INDEX=~/.Maildir/index/office > prefix = shared/%%u/ > separator = / > subscriptions = yes > type = shared >} >namespace inbox { > inbox = yes > location > mailbox Drafts { > auto = subscribe > special_use = \Drafts > } > mailbox Sent { > auto = subscribe > special_use = \Sent > } > mailbox Spam { > auto = subscribe > autoexpunge = 30 days > special_use = \Junk > } > mailbox Trash { > auto = subscribe > autoexpunge = 30 days > special_use = \Trash > } > prefix > separator = / > type = private >} >passdb { > args = /usr/local/etc/dovecot/dovecot-sql.conf.ext > driver = sql >} >plugin { > acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 > acl_anyone = allow > fts = lucene > fts_autoindex = yes > fts_autoindex_exclude = \Junk > fts_autoindex_exclude2 = \Trash > fts_autoindex_exclude3 = \Spam > fts_autoindex_max_recent_msgs = 80 > fts_index_timeout = 90 > fts_lucene = whitespace_chars=@. normalize no_snowball > imapsieve_mailbox1_before >file:/usr/local/lib/dovecot/sieve/report-spam.sieve > imapsieve_mailbox1_causes = COPY > imapsieve_mailbox1_name = Spam >imapsieve_mailbox2_before >file:/usr/local/lib/dovecot/sieve/report-ham.sieve > imapsieve_mailbox2_causes = COPY > imapsieve_mailbox2_from = Spam > imapsieve_mailbox2_name = * > last_login_dict = proxy::lastlogin > last_login_key = # hidden, use -P to show it > mail_crypt_curve = prime256v1 > mail_crypt_global_private_key = # hidden, use -P to show it > mail_crypt_global_public_key = # hidden, use -P to show it > mail_crypt_save_version = 2 >mail_log_events = delete undelete expunge copy mailbox_delete >mailbox_rename > mail_log_fields = uid box msgid size > quota = count:User quota > quota_exceeded_message = Storage quota for this account has been >exceeded, please try again later. > quota_grace = 10%% > quota_rule2 = Trash:ignore > quota_status_nouser = DUNNO > quota_status_overquota = 552 5.2.2 Mailbox is full > quota_status_success = DUNNO > quota_vsizes = true > quota_warning = storage=100%% quota-exceeded 100 %u > quota_warning2 = storage=95%% quota-warning 95 %u > quota_warning3 = storage=90%% quota-warning 90 %u > quota_warning4 = storage=85%% quota-warning 85 %u > quota_warning5 = storage=75%% quota-warning 75 %u >sieve >file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve > sieve_before = /var/vmail/sieve/global/spam-global.sieve > sieve_extensions = +notify +imapflags +spamtest +spamtestplus >+virustest +editheader > sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute >+vnd.dovecot.environment > sieve_max_redirects = 30 > sieve_max_script_size = 1M > sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve > sieve_plugins = sieve_imapsieve sieve_extprograms > sieve_spamtest_max_header = X-Spamd-Result: default: [[:alnum:]]+ >\[-?[[:digit:]]+\.[[:digit:]]+ / (-?[[:digit:]]+\.[[:digit:]]+)\] > sieve_spamtest_status_header = X-Spamd-Result: default: [[:alnum:]]+ >\[(-?[[:digit:]]+\.[[:digit:]]+) / -?[[:digit:]]+\.[[:digit:]]+\] > sieve_spamtest_status_type = score > sieve_user_log = /var/vmail/sieve/sieve_error.log > sieve_virustest_status_header = X-Virus-Scan: Found to be (.+)\. > sieve_virustest_status_type = text > sieve_virustest_text_value1 = clean > sieve_virustest_text_value5 = infected > trash = /usr/local/etc/dovecot/trash.conf > welcome_script = welcome %n postmaster@%d > welcome_wait = yes >} >postmaster_address = postmaster at example.com >protocols = imap lmtp sieve >sendmail_path = /usr/local/sbin/sendmail >service auth-worker { > user = vmail >} >service auth { > unix_listener /var/spool/postfix/private/auth { > group = postfix > mode = 0660 > user = postfix > } > unix_listener auth-userdb { > group = vmail > mode = 0666 > user = vmail > } >} >service dict { > unix_listener dict { > mode = 0600 > user = vmail > } > user = root >} >service imap-login { > inet_listener imap { > port = 143 > } > process_min_avail = 1 >} >service imap { > executable = imap >} >service lmtp { > executable = lmtp > unix_listener /var/spool/postfix/private/dovecot-lmtp { > group = postfix > mode = 0660 > user = postfix > } >} >service managesieve-login { > inet_listener sieve { > address = 172.16.21.3 > port = 4190 > } >} >service quota-status { > client_limit = 1 > executable = quota-status -p postfix > unix_listener /var/spool/postfix/private/dovecot-quota { > group = postfix > mode = 0660 > user = postfix > } >} >service quota-warning { > executable = script /usr/local/etc/dovecot/quota-warning.sh > unix_listener quota-warning { > group = vmail > mode = 0660 > user = vmail > } > user = vmail >} >service stats { > unix_listener stats-reader { > group = vmail > mode = 0660 > user = vmail > } > unix_listener stats-writer { > group = vmail > mode = 0660 > user = vmail > } >} >service welcome { > executable = script /usr/local/etc/dovecot/welcome.sh > unix_listener welcome { > user = vmail > } > user = vmail >} >ssl = required >ssl_cert = </usr/local/etc/ssl/acme.sh/example.com/fullchain.crt >ssl_cipher_list = EECDH+AESGCM:EDH+AESGCM >ssl_curve_list = P-256 >ssl_dh = # hidden, use -P to show it >ssl_key = # hidden, use -P to show it >ssl_min_protocol = TLSv1.2 >ssl_options = no_ticket >ssl_prefer_server_ciphers = yes >userdb { > args = /usr/local/etc/dovecot/dovecot-sql.conf.ext > driver = sql >} >protocol lmtp { > mail_fsync = optimized > mail_plugins = acl fts fts_lucene mail_log notify quota trash >virtual welcome zlib mail_crypt sieve >} >protocol lda { > mail_fsync = optimized > mail_plugins = acl fts fts_lucene mail_log notify quota trash >virtual welcome zlib mail_crypt sieve >} >protocol imap { > mail_max_userip_connections = 20 > mail_plugins = acl fts fts_lucene mail_log notify quota trash >virtual welcome zlib mail_crypt imap_acl imap_quota imap_sieve >imap_zlib last_login quota welcome >} >protocol sieve { > info_log_path = /var/log/dovecot/dovecot-sieve.log > log_path = /var/log/dovecot/dovecot-sieve-errors.log >} > >mail_home = /var/vmail/mailboxes/%d/%n >mail_location = dbox:~/mail-- Christian Kivalo
Hello, Thanks for all the replies. I've added a mailbox to the namespace definition for the public folders. I can do a doveadm acl get -A "Public/general" works but "Public/TestFolder" does not. Here's my 90-public.conf file: #cat 90-public.conf # Public mailboxes namespace { type = public separator = / prefix = Public/ location = maildir:/var/vmail/public:LAYOUT=fs subscriptions = yes list = children mailbox general { auto = subscribe comment = Public Folder for message sharing } mailbox TestFolder { auto = subscribe comment = Public Folder } } With the doveadm acl command something seems off with the user definitions: #doveadm acl get -A "Public/general" Username ID Global Rights user1 at domain.com user=user1 at domain.com global admin create delete expunge insert lookup post read write write-deleted write-seen user2 at domain2.com user=user1 at domain.com global admin create delete expunge insert lookup post read write write-deleted write-seen user2 at domain.com user=user1 at domain.com global admin create delete expunge insert lookup post read write write-deleted write-seen #doveadm acl get -A "Public/TestFolder" Username ID Global Rights Here's my ls output: #ls -l /var/vmail/public total 16 drwx------ 5 vmail vmail 512 Apr 25 13:56 TestFolder/ -rw------- 1 vmail vmail 0 Apr 25 13:43 dovecot-acl-list -rw------- 1 vmail vmail 8 Apr 25 13:47 dovecot-uidvalidity -r--r--r-- 1 vmail vmail 0 Apr 25 13:47 dovecot-uidvalidity.5ea477b0 -rw------- 1 vmail vmail 804 Apr 25 13:59 dovecot.list.index.log drwx------ 5 vmail vmail 512 Apr 25 13:47 general/ Thanks. Dave. #doveconf -n # 2.3.10 (0da0eff44): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.5.10 (bf8ef1c2) # OS: FreeBSD 12.1-RELEASE-p3 amd64 # Hostname: hostname at domain.com auth_cache_size = 10 M auth_default_realm = domain.com auth_mechanisms = plain login auth_realms = domain.com dict { lastlogin = mysql:/usr/local/etc/dovecot/dovecot-last-login.conf } first_valid_gid = 2100 first_valid_uid = 2100 hostname = hostname.domain.com imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags imap_idle_notify_interval = 1 mins last_valid_gid = 2100 last_valid_uid = 2100 lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lda_original_recipient_header = X-Original-To listen = xxx.xxx.xxx.xxx lmtp_rcpt_check_quota = yes log_timestamp = "%Y-%m-%d %H:%M:%S " mail_access_groups = vmail mail_fsync = never mail_gid = vmail mail_home = /var/vmail/mailboxes/%d/%n mail_location = dbox:~/mail mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt mail_privileged_group = vmail mail_server_admin = mailto:postmaster at domain.com mail_uid = vmail 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 index ihave duplicate mime foreverypart extracttext spamtest spamtestplus virustest editheader imapflags notify imapsieve vnd.dovecot.imapsieve namespace { list = children location = maildir:/var/vmail/public:LAYOUT=fs mailbox TestFolder { auto = subscribe comment = Public Folder } mailbox general { auto = subscribe comment = Public Folder for message sharing } prefix = Public/ separator = / subscriptions = yes type = public } namespace inbox { inbox = yes location mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Spam { auto = subscribe autoexpunge = 30 days special_use = \Junk } mailbox Trash { auto = subscribe autoexpunge = 30 days special_use = \Trash } prefix separator = / type = private } passdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 fts = lucene fts_autoindex = yes fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Trash fts_autoindex_exclude3 = \Spam fts_autoindex_max_recent_msgs = 80 fts_index_timeout = 90 fts_lucene = whitespace_chars=@. normalize no_snowball imapsieve_mailbox1_before file:/usr/local/lib/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Spam imapsieve_mailbox2_before = file:/usr/local/lib/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Spam imapsieve_mailbox2_name = * last_login_dict = proxy::lastlogin last_login_key = # hidden, use -P to show it mail_crypt_curve = prime256v1 mail_crypt_global_private_key = # hidden, use -P to show it mail_crypt_global_public_key = # hidden, use -P to show it mail_crypt_save_version = 2 mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = count:User quota quota_exceeded_message = Storage quota for this account has been exceeded, please try again later. quota_grace = 10%% quota_rule2 = Trash:ignore quota_status_nouser = DUNNO quota_status_overquota = 552 5.2.2 Mailbox is full quota_status_success = DUNNO quota_vsizes = true quota_warning = storage=100%% quota-exceeded 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=90%% quota-warning 90 %u quota_warning4 = storage=85%% quota-warning 85 %u quota_warning5 = storage=75%% quota-warning 75 %u sieve = file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve sieve_before = /var/vmail/sieve/global/spam-global.sieve sieve_extensions = +notify +imapflags +spamtest +spamtestplus +virustest +editheader sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute +vnd.dovecot.environment sieve_max_redirects = 30 sieve_max_script_size = 1M sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_spamtest_max_header = X-Spamd-Result: default: [[:alnum:]]+ \[-?[[:digit:]]+\.[[:digit:]]+ / (-?[[:digit:]]+\.[[:digit:]]+)\] sieve_spamtest_status_header = X-Spamd-Result: default: [[:alnum:]]+ \[(-?[[:digit:]]+\.[[:digit:]]+) / -?[[:digit:]]+\.[[:digit:]]+\] sieve_spamtest_status_type = score sieve_user_log = /var/vmail/sieve/sieve_error.log sieve_virustest_status_header = X-Virus-Scan: Found to be (.+)\. sieve_virustest_status_type = text sieve_virustest_text_value1 = clean sieve_virustest_text_value5 = infected trash = /usr/local/etc/dovecot/trash.conf welcome_script = welcome %n postmaster@%d welcome_wait = yes } postmaster_address = postmaster at domain.com protocols = imap lmtp sieve sendmail_path = /usr/local/sbin/sendmail service auth-worker { user = vmail } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { group = vmail mode = 0666 user = vmail } } service dict { unix_listener dict { mode = 0600 user = vmail } user = root } service imap-login { inet_listener imap { port = 143 } process_min_avail = 1 } service imap { executable = imap } service lmtp { executable = lmtp unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { address = xxx.xxx.xxx.xxx port = 4190 } } service quota-status { client_limit = 1 executable = quota-status -p postfix unix_listener /var/spool/postfix/private/dovecot-quota { group = postfix mode = 0660 user = postfix } } service quota-warning { executable = script /usr/local/etc/dovecot/quota-warning.sh unix_listener quota-warning { group = vmail mode = 0660 user = vmail } user = vmail } service stats { unix_listener stats-reader { group = vmail mode = 0660 user = vmail } unix_listener stats-writer { group = vmail mode = 0660 user = vmail } } service welcome { executable = script /usr/local/etc/dovecot/welcome.sh unix_listener welcome { user = vmail } user = vmail } ssl = required ssl_cert = </usr/local/etc/ssl/acme.sh/domain.com/fullchain.crt ssl_cipher_list = EECDH+AESGCM:EDH+AESGCM ssl_curve_list = P-256 ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_min_protocol = TLSv1.2 ssl_options = no_ticket ssl_prefer_server_ciphers = yes userdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } protocol lmtp { mail_fsync = optimized mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt sieve } protocol lda { mail_fsync = optimized mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt sieve } protocol imap { mail_max_userip_connections = 20 mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt imap_acl imap_quota imap_sieve imap_zlib last_login quota welcome } protocol sieve { info_log_path = /var/log/dovecot/dovecot-sieve.log log_path = /var/log/dovecot/dovecot-sieve-errors.log } On 4/25/20, Christian Kivalo <ml+dovecot at valo.at> wrote:> > > On April 25, 2020 2:35:20 AM GMT+02:00, David Mehler <dave.mehler at gmail.com> > wrote: >>Hello, >> >>I'm trying to set up a public folder called TestFolder. I'm getting >>this error: >> >>#doveadm acl get -A "Public/TestFolder" >>doveadm(username at example.com): Error: Can't open mailbox >>Public/TestFolder: Mailbox doesn't exist: Public/TestFolder >>Username ID Global Rights > > Have you enabled debug log and what does it show when you run this command? > >># ls -ld /var/vmail/public >>drwx------ 4 vmail vmail 512 Apr 15 23:17 public/ >> >># ls -ld public/.TestFolder >>drwx------ 5 vmail vmail 512 Apr 15 23:20 .TestFolder/ >> >>My goal is a public namespace under which I have several folders for >>internal communications that users can access, TestFolder being an >>example. >> >>Suggestions welcome. >>Thanks. >>Dave. >> >>#doveconf -n >># 2.3.10 (0da0eff44): /usr/local/etc/dovecot/dovecot.conf >># Pigeonhole version 0.5.10 (bf8ef1c2) >># OS: FreeBSD 12.1-RELEASE-p3 amd64 >># Hostname: mail.example.com >>auth_cache_size = 10 M >>auth_default_realm = example.com >>auth_mechanisms = plain login >>auth_realms = example.com >>dict { >> lastlogin = mysql:/usr/local/etc/dovecot/dovecot-last-login.conf >>} >>first_valid_gid = 2100 >>first_valid_uid = 2100 >>hostname = mail.example.com >>imap_client_workarounds = delay-newmail tb-extra-mailbox-sep >>tb-lsub-flags >>imap_idle_notify_interval = 1 mins >>last_valid_gid = 2100 >>last_valid_uid = 2100 >>lda_mailbox_autocreate = yes >>lda_mailbox_autosubscribe = yes >>lda_original_recipient_header = X-Original-To >>listen = xxx.xxx.xxx.xxx >>lmtp_rcpt_check_quota = yes >>log_timestamp = "%Y-%m-%d %H:%M:%S " >>mail_access_groups = vmail >>mail_fsync = never >>mail_gid = vmail >>mail_home = /var/vmail/mailboxes/%d/%n >>mail_location = dbox:~/mail >>mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual >>welcome zlib mail_crypt >>mail_privileged_group = vmail >>mail_server_admin = mailto:postmaster at example.com >>mail_uid = vmail >>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 index ihave duplicate mime foreverypart >>extracttext spamtest spamtestplus virustest editheader imapflags >>notify imapsieve vnd.dovecot.imapsieve >>namespace { >>location >>sdbox:/var/vmail/public/:CONTROL=~/mail/public:INDEX=~/mail/public:INDEXPVT=~/mail/public >> prefix = Public/ >> separator = / >> subscriptions = yes >> type = public >>} >>namespace { >> hidden = no >> list = yes >>location >>maildir:/var/vmail/shared/office/.Maildir:CONTROL=~/.Maildir/control/office:INDEX=~/.Maildir/index/office >> prefix = shared/%%u/ >> separator = / >> subscriptions = yes >> type = shared >>} >>namespace inbox { >> inbox = yes >> location >> mailbox Drafts { >> auto = subscribe >> special_use = \Drafts >> } >> mailbox Sent { >> auto = subscribe >> special_use = \Sent >> } >> mailbox Spam { >> auto = subscribe >> autoexpunge = 30 days >> special_use = \Junk >> } >> mailbox Trash { >> auto = subscribe >> autoexpunge = 30 days >> special_use = \Trash >> } >> prefix >> separator = / >> type = private >>} >>passdb { >> args = /usr/local/etc/dovecot/dovecot-sql.conf.ext >> driver = sql >>} >>plugin { >> acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 >> acl_anyone = allow >> fts = lucene >> fts_autoindex = yes >> fts_autoindex_exclude = \Junk >> fts_autoindex_exclude2 = \Trash >> fts_autoindex_exclude3 = \Spam >> fts_autoindex_max_recent_msgs = 80 >> fts_index_timeout = 90 >> fts_lucene = whitespace_chars=@. normalize no_snowball >> imapsieve_mailbox1_before >>file:/usr/local/lib/dovecot/sieve/report-spam.sieve >> imapsieve_mailbox1_causes = COPY >> imapsieve_mailbox1_name = Spam >>imapsieve_mailbox2_before >>file:/usr/local/lib/dovecot/sieve/report-ham.sieve >> imapsieve_mailbox2_causes = COPY >> imapsieve_mailbox2_from = Spam >> imapsieve_mailbox2_name = * >> last_login_dict = proxy::lastlogin >> last_login_key = # hidden, use -P to show it >> mail_crypt_curve = prime256v1 >> mail_crypt_global_private_key = # hidden, use -P to show it >> mail_crypt_global_public_key = # hidden, use -P to show it >> mail_crypt_save_version = 2 >>mail_log_events = delete undelete expunge copy mailbox_delete >>mailbox_rename >> mail_log_fields = uid box msgid size >> quota = count:User quota >> quota_exceeded_message = Storage quota for this account has been >>exceeded, please try again later. >> quota_grace = 10%% >> quota_rule2 = Trash:ignore >> quota_status_nouser = DUNNO >> quota_status_overquota = 552 5.2.2 Mailbox is full >> quota_status_success = DUNNO >> quota_vsizes = true >> quota_warning = storage=100%% quota-exceeded 100 %u >> quota_warning2 = storage=95%% quota-warning 95 %u >> quota_warning3 = storage=90%% quota-warning 90 %u >> quota_warning4 = storage=85%% quota-warning 85 %u >> quota_warning5 = storage=75%% quota-warning 75 %u >>sieve >>file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve >> sieve_before = /var/vmail/sieve/global/spam-global.sieve >> sieve_extensions = +notify +imapflags +spamtest +spamtestplus >>+virustest +editheader >> sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute >>+vnd.dovecot.environment >> sieve_max_redirects = 30 >> sieve_max_script_size = 1M >> sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve >> sieve_plugins = sieve_imapsieve sieve_extprograms >> sieve_spamtest_max_header = X-Spamd-Result: default: [[:alnum:]]+ >>\[-?[[:digit:]]+\.[[:digit:]]+ / (-?[[:digit:]]+\.[[:digit:]]+)\] >> sieve_spamtest_status_header = X-Spamd-Result: default: [[:alnum:]]+ >>\[(-?[[:digit:]]+\.[[:digit:]]+) / -?[[:digit:]]+\.[[:digit:]]+\] >> sieve_spamtest_status_type = score >> sieve_user_log = /var/vmail/sieve/sieve_error.log >> sieve_virustest_status_header = X-Virus-Scan: Found to be (.+)\. >> sieve_virustest_status_type = text >> sieve_virustest_text_value1 = clean >> sieve_virustest_text_value5 = infected >> trash = /usr/local/etc/dovecot/trash.conf >> welcome_script = welcome %n postmaster@%d >> welcome_wait = yes >>} >>postmaster_address = postmaster at example.com >>protocols = imap lmtp sieve >>sendmail_path = /usr/local/sbin/sendmail >>service auth-worker { >> user = vmail >>} >>service auth { >> unix_listener /var/spool/postfix/private/auth { >> group = postfix >> mode = 0660 >> user = postfix >> } >> unix_listener auth-userdb { >> group = vmail >> mode = 0666 >> user = vmail >> } >>} >>service dict { >> unix_listener dict { >> mode = 0600 >> user = vmail >> } >> user = root >>} >>service imap-login { >> inet_listener imap { >> port = 143 >> } >> process_min_avail = 1 >>} >>service imap { >> executable = imap >>} >>service lmtp { >> executable = lmtp >> unix_listener /var/spool/postfix/private/dovecot-lmtp { >> group = postfix >> mode = 0660 >> user = postfix >> } >>} >>service managesieve-login { >> inet_listener sieve { >> address = 172.16.21.3 >> port = 4190 >> } >>} >>service quota-status { >> client_limit = 1 >> executable = quota-status -p postfix >> unix_listener /var/spool/postfix/private/dovecot-quota { >> group = postfix >> mode = 0660 >> user = postfix >> } >>} >>service quota-warning { >> executable = script /usr/local/etc/dovecot/quota-warning.sh >> unix_listener quota-warning { >> group = vmail >> mode = 0660 >> user = vmail >> } >> user = vmail >>} >>service stats { >> unix_listener stats-reader { >> group = vmail >> mode = 0660 >> user = vmail >> } >> unix_listener stats-writer { >> group = vmail >> mode = 0660 >> user = vmail >> } >>} >>service welcome { >> executable = script /usr/local/etc/dovecot/welcome.sh >> unix_listener welcome { >> user = vmail >> } >> user = vmail >>} >>ssl = required >>ssl_cert = </usr/local/etc/ssl/acme.sh/example.com/fullchain.crt >>ssl_cipher_list = EECDH+AESGCM:EDH+AESGCM >>ssl_curve_list = P-256 >>ssl_dh = # hidden, use -P to show it >>ssl_key = # hidden, use -P to show it >>ssl_min_protocol = TLSv1.2 >>ssl_options = no_ticket >>ssl_prefer_server_ciphers = yes >>userdb { >> args = /usr/local/etc/dovecot/dovecot-sql.conf.ext >> driver = sql >>} >>protocol lmtp { >> mail_fsync = optimized >> mail_plugins = acl fts fts_lucene mail_log notify quota trash >>virtual welcome zlib mail_crypt sieve >>} >>protocol lda { >> mail_fsync = optimized >> mail_plugins = acl fts fts_lucene mail_log notify quota trash >>virtual welcome zlib mail_crypt sieve >>} >>protocol imap { >> mail_max_userip_connections = 20 >> mail_plugins = acl fts fts_lucene mail_log notify quota trash >>virtual welcome zlib mail_crypt imap_acl imap_quota imap_sieve >>imap_zlib last_login quota welcome >>} >>protocol sieve { >> info_log_path = /var/log/dovecot/dovecot-sieve.log >> log_path = /var/log/dovecot/dovecot-sieve-errors.log >>} >> >>mail_home = /var/vmail/mailboxes/%d/%n >>mail_location = dbox:~/mail > > -- > Christian Kivalo >