我在FreeBSD服务器上安装了Dovecot v2.0.11,并且用户查找传入的电子邮件地址失败,但系统用户的查找成功.
Dovecot设置为使用系统用户,所以我的dovecot.conf有
userdb { driver = passwd }
和
passdb { driver = passwd }
我启用了auth调试.
例如,我有一个名为webmaster的用户,使用“webmaster”的doveadm用户的工作方式如下:
#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