Назад | Перейти на главную страницу

Dovecot не работает с добавленным общедоступным пространством имен

мы запускаем Dovecot 2.2.5 под OS X Server 4.1 (под 10.10.3). Я безуспешно пытаюсь добавить общедоступное пространство имен с некоторыми общедоступными папками.

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
}

Я добавил:

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

После того, как я перезапускаю его и пытаюсь войти в систему, он сообщает, что произошла внутренняя ошибка:

* 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

Однако на самом деле в журнале нет ничего важного:

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

Может ли кто-нибудь увидеть, что я делаю неправильно, или подсказать, где я могу найти более ценную информацию?

Хорошо, разобрались. Было две простых проблемы:

  1. Причина, по которой я ничего не видел в журнале отладки, заключается в том, что сообщения об ошибках отправлялись в другой журнал. Я предположил, что журнал отладки будет содержать ВСЕ сообщения. Я ошибался. Когда я понял это и начал искать в журнале mail-err.log, я заметил ошибку, которая была

  2. namespace configuration error: list=yes requires prefix=Public to end with separator. Проблема заключалась в том, что у меня не было разделителя после префикса в объявлении общедоступного пространства имен:

    prefix = Public просто нужно было быть prefix = Public.