Dovecot:将 mdbox 转换为 MailDir 时出现问题

Dovecot:将 mdbox 转换为 MailDir 时出现问题

我在将 mdbox 转换为 MailDir 时遇到问题。该过程的日志如下所示:

/bin/dsync -Dv -u [email protected] mirror maildir:/tmp/destination/mailboxes/[email protected]



Debug: Loading modules from directory: /lib/dovecot
Debug: Module loaded: /lib/dovecot/lib01_acl_plugin.so
Debug: Loading modules from directory: /lib/dovecot/doveadm
Debug: Module loaded: /lib/dovecot/doveadm/lib10_doveadm_acl_plugin.so
Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /lib/dovecot/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_lookup (this is usually intentional, so just ignore this message)
Debug: Skipping module doveadm_quota_plugin, because dlopen() failed: /lib/dovecot/doveadm/lib10_doveadm_quota_plugin.so: undefined symbol: quota_user_module (this is usually intentional, so just ignore this message)
Debug: Module loaded: /lib/dovecot/doveadm/lib10_doveadm_sieve_plugin.so
Debug: Skipping module doveadm_fts_plugin, because dlopen() failed: /lib/dovecot/doveadm/lib20_doveadm_fts_plugin.so: undefined symbol: fts_list_backend (this is usually intentional, so just ignore this message)
doveadm([email protected]): Debug: Effective uid=503, gid=503, home=/var/mailboxes/%2Mu/%2.2Mu/%u
doveadm([email protected]): Debug: Home dir not found: /var/mailboxes/%2Mu/%2.2Mu/%u
doveadm([email protected]): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=mdbox:/var/mailboxes/64/b1/[email protected]
doveadm([email protected]): Debug: fs: root=/var/mailboxes/64/b1/[email protected], index=, indexpvt=, control=, inbox=, alt=
doveadm([email protected]): Debug: acl: initializing backend with data: vfile
doveadm([email protected]): Debug: acl: acl username = [email protected]
doveadm([email protected]): Debug: acl: owner = 1
doveadm([email protected]): Debug: acl vfile: Global ACLs disabled
doveadm([email protected]): Debug: Namespace : type=shared, prefix=shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=mdbox:/var/mailboxes/%2Mu/%2.2Mu/%u
doveadm([email protected]): Debug: shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt=
doveadm([email protected]): Debug: acl: initializing backend with data: vfile
doveadm([email protected]): Debug: acl: acl username = [email protected]
doveadm([email protected]): Debug: acl: owner = 0
doveadm([email protected]): Debug: acl vfile: Global ACLs disabled
doveadm([email protected]): Debug: acl vfile: file /var/mailboxes/64/b1/[email protected]/mailboxes/INBOX/dbox-Mails/dovecot-acl not found
doveadm([email protected]): Debug: acl vfile: file /var/mailboxes/64/b1/[email protected]/mailboxes/Drafts/dbox-Mails/dovecot-acl not found
doveadm([email protected]): Debug: acl vfile: file /var/mailboxes/64/b1/[email protected]/mailboxes/Sent/dbox-Mails/dovecot-acl not found
doveadm([email protected]): Debug: acl vfile: file /var/mailboxes/64/b1/[email protected]/mailboxes/Trash/dbox-Mails/dovecot-acl not found
doveadm([email protected]): Debug: Namespace : Using permissions from /var/mailboxes/64/b1/[email protected]: mode=0700 gid=default
dsync([email protected]): Debug: Effective uid=503, gid=503, home=/var/mailboxes/%2Mu/%2.2Mu/%u
dsync([email protected]): Debug: Home dir not found: /var/mailboxes/%2Mu/%2.2Mu/%u
dsync([email protected]): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/tmp/destination/mailboxes/[email protected]
dsync([email protected]): Debug: maildir++: root=/tmp/destination/mailboxes/[email protected], index=, indexpvt=, control=, inbox=/tmp/destination/mailboxes/[email protected], alt=
dsync([email protected]): Debug: Namespace : /tmp/destination/mailboxes/[email protected] doesn't exist yet, using default permissions
dsync([email protected]): Debug: Namespace : Using permissions from /tmp/destination/mailboxes/[email protected]: mode=0700 gid=default
dsync([email protected]): Debug: acl: initializing backend with data: vfile
dsync([email protected]): Debug: acl: acl username = [email protected]
dsync([email protected]): Debug: acl: owner = 1
dsync([email protected]): Debug: acl vfile: Global ACLs disabled
dsync([email protected]): Debug: Namespace : type=shared, prefix=shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=mdbox:/var/mailboxes/%2Mu/%2.2Mu/%u
dsync([email protected]): Debug: shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt=
dsync([email protected]): Debug: acl: initializing backend with data: vfile
dsync([email protected]): Debug: acl: acl username = [email protected]
dsync([email protected]): Debug: acl: owner = 0
dsync([email protected]): Debug: acl vfile: Global ACLs disabled
dsync([email protected]): Error: User initialization failed: namespace configuration error: All list=yes namespaces must use the same separator

但是当我将命名空间指定到收件箱时

/bin/dsync -Dv -u [email protected] mirror maildir:/tmp/destination/mailboxes/[email protected] -n inbox

它引发不同的错误:

doveadm([email protected]): Debug: Namespace : Using permissions from /var/mailboxes/64/b1/[email protected]: mode=0700 gid=default
doveadm([email protected]): Fatal: execvp(maildir:/tmp/destination/mailboxes/[email protected]) failed: No such file or directory
dsync-local([email protected]): Error: read(remote) failed: EOF (version not received

当目录存在时/tmp/destination/mailboxes/[email protected]

并且/bin/doveconf namespace

namespace {
  disabled = no
  hidden = no
  ignore_on_failure = no
  inbox = no
  list = children
  location = mdbox:/var/mailboxes/%%2Mu/%%2.2Mu/%%u
  order = 0
  prefix = shared/%%u/
  separator = /
  subscriptions = yes
  type = shared
}
namespace inbox {
  disabled = no
  hidden = no
  ignore_on_failure = no
  inbox = yes
  list = yes
  location =
  mailbox Drafts {
    auto = subscribe
    driver =
    special_use = \Drafts
  }
  mailbox INBOX {
    auto = subscribe
    driver =
    special_use =
  }
  mailbox Junk {
    auto = no
    driver =
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    driver =
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = no
    driver =
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    driver =
    special_use = \Trash
  }
  order = 0
  prefix =
  separator =
  subscriptions = yes
  type = private
}

在此过程中我做错了什么?

答案1

就我而言,解决方案是添加

separator = /

inbox命名空间也是如此。出于某种原因,它没有默认使用邮箱格式的内部分隔符。

相关内容