我有一个 SMTP 服务器:
- Dovecot 作为其 IMAP 服务器
- Postfix 作为其 MTA
- OpenDKIM 签署电子邮件。
当我发送邮件时,它会引发此错误:
Jan 01 10:46:01 example.com dovecot[211047]: lmtp(219823): Error: lmtp-server: conn unix:pid=219911,uid=113 [10]: rcpt [email protected]: Failed to initialize user: Mail access for users with UID 114 not permitted (see first_valid_uid in config file, uid from userdb lookup).
我应该注意,我可以连接到我的服务器来阅读电子邮件,但无法发送。这与之前的问题有关:Postfix 不发送邮件;example.com 循环回到我自己并且连接超时
答案1
您需要提高您的诊断技能,因为错误消息直接指向相关配置并告诉您其中可能存在什么问题。
dovecot[211047]
这部分表明日志消息来自该
dovecot
进程;Dovecot 的配置可能有问题。Mail access for users with UID 114 not permitted
由于某些原因,具有 UID 的用户
114
不被允许登录 Dovecot。这是一个系统用户:您可以使用命令id 114
来显示它是哪个用户,以决定它是否可以登录 Dovecot。(see first_valid_uid in config file, uid from userdb lookup)
这里告诉您应寻找什么。相关Dovecot 配置使用的系统用户说:
默认情况下,Dovecot 仅允许用户使用 UID 号及以上登录
500
。此检查旨在确保没有人能够以守护进程或其他系统用户身份登录。如果您使用的 UID 低于500
,则需要更改first_valid_uid
设置。dovecot-imapd
在 Ubuntu 22.04 上全新安装:$ doveconf -a | grep "first_valid_uid" first_valid_uid = 500
作为默认设置,它在配置文件中被注释掉:
$ grep "first_valid_uid" /etc/dovecot/conf.d/*.conf /etc/dovecot/conf.d/10-mail.conf:# be done even if first_valid_uid is set to 0. /etc/dovecot/conf.d/10-mail.conf:#first_valid_uid = 500
/etc/dovecot/conf.d/10-mail.conf
根据需要通过取消注释行 add set is 进行编辑,例如,first_valid_uid = 114
请记住,这允许所有具有 UID
114
及以上的系统用户登录 Dovecot。用户数据库可用于更精细的级配配置。