我在FreeBSD服务器上安装了Dovecot v2.0.11,并且对输入电子邮件地址的用户查找失败,但是对系统用户的查找成功。
Dovecot设置为使用系统用户,因此我的dovecot.conf具有
userdb {
driver = passwd
}
和
passdb {
driver = passwd
}
我已启用身份验证调试。
例如,我有一个名为webmaster的用户,使用doveadm用户作为“ webmaster”的工作方式如下:
#doveadm user webmaster
userdb: webmaster
system_groups_user: webmaster
uid : 1020
gid : 1020
home : /home/webmaster
但是,使用doveadm用户查找webmaster@myregisteredname.com失败,如下所示:
# doveadm user webmaster@myregisteredname.com
userdb lookup: user webmaster@myregisteredname.com doesn't exist
这导致webmaster@myregisteredname.com的传入邮件被退回,并显示“未知用户”错误。
这是在/ var / log / maillog中记录的故障:
Apr 16 20:13:35 www dovecot: auth: passwd(webmaster@myregisteredname.com): unknown user
这是在/var/log/debug.log中记录的故障:
Apr 16 20:13:35 www dovecot: auth: Debug: master in: USER 1 webmaster@myregisteredname.com service=doveadm
Apr 16 20:13:35 www dovecot: auth: Debug: passwd(webmaster@myregisteredname.com): lookup
Apr 16 20:13:35 www dovecot: auth: Debug: master out: NOTFOUND 1
从另一台服务器导入了用户及其主目录,并使用vipw工具设置了用户。我确定在导入过程中遗漏了一些东西,这些东西没有“链接”系统用户与dovecot查找。
关于什么可能是什么的任何想法?
编辑:使用BillThor的建议,我更新了dovecot.conf如下:
#doveconf -n passdb userdb
passdb {
args = username_format=%n
driver = passwd
}
userdb {
args = username_format=%n
driver = passwd
}
但是,现在,doveadm用户以另一种方式失败:
#doveadm user webmaster@pantronx.com
doveadm(root): Error: userdb lookup(webmaster@myregisteredname.com): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster@myregisteredname.com
而且,它不再适用于没有域的用户:
#doveadm user webmaster
doveadm(root): Error: userdb lookup(webmaster): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster
当我收到上述消息时,以下内容在/ var / log / maillog中:
Apr 17 17:30:02 www dovecot: auth: Fatal: passdb passwd: Unknown setting: username_format=%u
Apr 17 17:30:02 www dovecot: master: Error: service(auth): command startup failed, throttling