2

we're running Dovecot 2.2.5 under OS X Server 4.1 (under 10.10.3). I'm trying to add a public namespace with some public folders without success.

doveconf -n:

# 2.2.5: /Library/Server/Mail/Config/dovecot/dovecot.conf
# OS: Darwin 14.3.0 x86_64  hfs
aps_topic = com.apple.mail.XServer.1e114df5-b7cb-47ba-b258-d4460742ed64
auth_mechanisms = cram-md5 digest-md5 plain login
auth_realms = office.example.com
auth_socket_path = /var/run/dovecot/auth-userdb
auth_username_format = %n
debug_log_path = /Library/Logs/Mail/mail-debug.log
default_internal_user = _dovecot
default_login_user = _dovenull
disable_plaintext_auth = no
first_valid_gid = 6
first_valid_uid = 6
imap_id_log = *
imap_id_send = "name" * "version" *
imap_urlauth_submit_user = submit
info_log_path = /Library/Logs/Mail/mail-info.log
log_path = /Library/Logs/Mail/mail-err.log
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
mail_access_groups = mail
mail_attribute_dict = file:/Library/Server/Mail/Data/attributes/attributes.dict
mail_debug = yes
mail_location = maildir:/Library/Server/Mail/Data/mail/%u
mail_log_prefix = "%s(pid %p user %u): "
mail_plugins = quota zlib acl fts fts_sk
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
mdbox_rotate_size = 200 M
namespace acl-mailboxes {
  list = children
  location = maildir:/Library/Server/Mail/Data/mail/users/%%u:INDEX=/Library/Server/Mail/Data/mail/shared/%%u
  prefix = shared.%%u.
  separator = .
  subscriptions = no
  type = shared
}
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix = 
  separator = .
  type = private
}
namespace list-archives {
  list = children
  location = maildir:/Library/Server/Mail/Data/listserver/messages/archive/lists/%%u:INDEX=/Library/Server/Mail/Data/listserver/messages/archive/shared/%%u
  prefix = archives.%%u.
  separator = .
  subscriptions = no
  type = shared
}
namespace public-junk {
  location = maildir:/Library/Server/Mail/Data/mail/public
  prefix = Public
  separator = .
  subscriptions = no
  type = public
}
passdb {
  driver = od
}
passdb {
  args = /Library/Server/Mail/Config/dovecot/submit.passdb
  driver = passwd-file
}
plugin {
  acl = vfile:/Library/Server/Mail/Config/dovecot/global-acls:cache_secs=300
  acl_shared_dict = file:/Library/Server/Mail/Data/shared/shared-mailboxes
  fts = sk
  quota = maildir:User quota
  quota_warning = storage=100%% quota-exceeded %u
  quota_warning2 = storage=80%% quota-warning %u
  sieve = /Library/Server/Mail/Data/rules/%u/dovecot.sieve
  sieve_dir = /Library/Server/Mail/Data/rules/%u
  stats_refresh = 30 secs
  stats_track_cmds = yes
}
postmaster_address = postmaster@office.example.com
protocols = imap pop3 lmtp sieve
quota_full_tempfail = yes
service auth {
  idle_kill = 15 mins
  unix_listener auth-userdb {
    user = _dovecot
  }
}
service dns_client {
  unix_listener dns-client {
    mode = 0600
  }
}
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
  service_count = 0
}
service imap {
  client_limit = 5
  process_limit = 200
  service_count = 0
}
service indexer-worker {
  user = _dovecot
}
service lmtp {
  unix_listener lmtp {
    mode = 0600
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}
service pop3 {
  client_limit = 5
  process_limit = 200
  service_count = 0
}
service quota-exceeded {
  executable = script /Applications/Server.app/Contents/ServerRoot/usr/libexec/dovecot/quota-exceeded.sh
  unix_listener quota-exceeded {
    group = mail
    mode = 0660
    user = _dovecot
  }
  user = _dovecot
}
service quota-warning {
  executable = script /Applications/Server.app/Contents/ServerRoot/usr/libexec/dovecot/quota-warning.sh
  unix_listener quota-warning {
    group = mail
    mode = 0660
    user = _dovecot
  }
  user = _dovecot
}
service stats {
  fifo_listener stats-mail {
    mode = 0600
    user = _dovecot
  }
}
ssl = required
ssl_ca = </etc/certificates/*.example.com.F1198B75044505AB8E75B3ABB079E94E955EB6C1.chain.pem
ssl_cert = </etc/certificates/*.example.com.F1198B75044505AB8E75B3ABB079E94E955EB6C1.cert.pem
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!ADH:!eNULL
ssl_key = </etc/certificates/*.example.com.F1198B75044505AB8E75B3ABB079E94E955EB6C1.key.pem
ssl_key_path = /etc/certificates/*.example.com.F1198B75044505AB8E75B3ABB079E94E955EB6C1.key.pem
ssl_protocols = !SSLv2 !SSLv3
userdb {
  args = partition=/Library/Server/Mail/Config/dovecot/partition_map.conf enforce_quotas=yes
  driver = od
}
userdb {
  args = /Library/Server/Mail/Config/dovecot/submit.passdb
  driver = passwd-file
}
verbose_proctitle = yes
protocol lmtp {
  mail_plugins = quota zlib acl fts fts_sk sieve push_notify
}
protocol lda {
  mail_plugins = quota zlib acl fts fts_sk sieve push_notify
}
protocol imap {
  mail_max_userip_connections = 20
  mail_plugins = quota zlib acl fts fts_sk imap_acl imap_quota imap_zlib
}
protocol pop3 {
  mail_max_userip_connections = 6
}

The bit I added was:

namespace public-junk {
  location = maildir:/Library/Server/Mail/Data/mail/public
  prefix = Public
  separator = .
  subscriptions = no
  type = public
}

After I restart it and try to log in , it states an internal error occurred:

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE XAPPLEPUSHSERVICE AUTH=CRAM-MD5 AUTH=DIGEST-MD5 AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
a1 LOGIN jay ***********
* BYE Internal error occurred. Refer to server log for more information.
closed

However, there is really nothing in the log that seems relevant:

May 06 16:41:38 imap(pid 54065 user jay): Debug: Effective uid=214, gid=6, home=
May 06 16:41:38 imap(pid 54065 user jay): Debug: Quota root: name=User quota backend=maildir args=
May 06 16:41:38 imap(pid 54065 user jay): Debug: Quota rule: root=User quota mailbox=* bytes=0 messages=0
May 06 16:41:38 imap(pid 54065 user jay): Debug: Quota warning: bytes=0 (100%) messages=0 reverse=no command=quota-exceeded jay
May 06 16:41:38 imap(pid 54065 user jay): Debug: Quota warning: bytes=0 (80%) messages=0 reverse=no command=quota-warning jay
May 06 16:41:38 imap(pid 54065 user jay): Debug: Quota grace: root=User quota bytes=0 (10%)
May 06 16:41:38 imap(pid 54065 user jay): Debug: Namespace inbox: type=private, prefix=, sep=., inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/Library/Server/Mail/Data/mail/11BFFB08-A721-4134-8824-A99D66FEF4EE
May 06 16:41:38 imap(pid 54065 user jay): Debug: maildir++: root=/Library/Server/Mail/Data/mail/11BFFB08-A721-4134-8824-A99D66FEF4EE, index=, indexpvt=, control=, inbox=/Library/Server/Mail/Data/mail/11BFFB08-A721-4134-8824-A99D66FEF4EE, alt=
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: initializing backend with data: vfile:/Library/Server/Mail/Config/dovecot/global-acls:cache_secs=300
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: acl username = jay
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: owner = 1
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl vfile: Global ACL directory: /Library/Server/Mail/Config/dovecot/global-acls
May 06 16:41:38 imap(pid 54065 user jay): Debug: Namespace acl-mailboxes: type=shared, prefix=shared.%u., sep=., inbox=no, hidden=no, list=children, subscriptions=no location=maildir:/Library/Server/Mail/Data/mail/users/%u:INDEX=/Library/Server/Mail/Data/mail/shared/%u
May 06 16:41:38 imap(pid 54065 user jay): Debug: shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt=
May 06 16:41:38 imap(pid 54065 user jay): Debug: fts: Indexes disabled for namespace 'shared.%u.'
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: initializing backend with data: vfile:/Library/Server/Mail/Config/dovecot/global-acls:cache_secs=300
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: acl username = jay
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: owner = 0
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl vfile: Global ACL directory: /Library/Server/Mail/Config/dovecot/global-acls
May 06 16:41:38 imap(pid 54065 user jay): Debug: Namespace list-archives: type=shared, prefix=archives.%u., sep=., inbox=no, hidden=no, list=children, subscriptions=no location=maildir:/Library/Server/Mail/Data/listserver/messages/archive/lists/%u:INDEX=/Library/Server/Mail/Data/listserver/messages/archive/shared/%u
May 06 16:41:38 imap(pid 54065 user jay): Debug: shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt=
May 06 16:41:38 imap(pid 54065 user jay): Debug: fts: Indexes disabled for namespace 'archives.%u.'
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: initializing backend with data: vfile:/Library/Server/Mail/Config/dovecot/global-acls:cache_secs=300
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: acl username = jay
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: owner = 0
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl vfile: Global ACL directory: /Library/Server/Mail/Config/dovecot/global-acls
May 06 16:41:38 imap(pid 54065 user jay): Debug: Namespace public-junk: type=public, prefix=Public, sep=., inbox=no, hidden=no, list=yes, subscriptions=no location=maildir:/Library/Server/Mail/Data/mail/public
May 06 16:41:38 imap(pid 54065 user jay): Debug: maildir++: root=/Library/Server/Mail/Data/mail/public, index=, indexpvt=, control=, inbox=, alt=
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: initializing backend with data: vfile:/Library/Server/Mail/Config/dovecot/global-acls:cache_secs=300
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: acl username = jay
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl: owner = 0
May 06 16:41:38 imap(pid 54065 user jay): Debug: acl vfile: Global ACL directory: /Library/Server/Mail/Config/dovecot/global-acls

Can anyone see what I'm doing wrong, or suggest where I can look for some more valuable information?

4

OK, worked this out. There were two simple issues:

  1. The reason I wasn't seen anything in the debug log, is that error messages were going to a different log. I assumed the debug log would contain ALL messages. I was wrong. Once I had realised that, and started looking in mail-err.log, I observed the error, which was

  2. namespace configuration error: list=yes requires prefix=Public to end with separator. The issue was that I didn't have the separator after the prefix in the public namespace declaration:

    prefix = Public just needed to be prefix = Public.

1
  • Wow! I was "hit" by (2). They could just add the damn separator automatically. Strange idea to force the administrator to do that. Nov 8 '20 at 17:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.