我在将 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
命名空间也是如此。出于某种原因,它没有默认使用邮箱格式的内部分隔符。