我正在使用 CentOS 7 + Exim 4.92 + Dovecot 2.2.36 和 RoundCubeMail 作为 Web 界面运行邮件服务器,并且遇到以下问题:当我发送或接收不是 admin@ 或 info@ 或 dev@ 等的电子邮件时.我有以下错误:
2020-04-05 05:37:52 H=mail.mydomain.com (IP) [IP] sender verify fail for <[email protected]>: Unknown user
2020-04-05 05:37:52 H=mail.mydomain.com (IP) [IP] F=<[email protected]> A=dovecot_login:[email protected] rejected RCPT <[email protected]>: Sender verify failed
在这里,我尝试从[email protected] 向[email protected] 发送电子邮件。但是,如果我从管理员向 info 发送电子邮件,或者从 dev 向 info 发送电子邮件,一切顺利:发送和接收电子邮件,不会发生错误。
如果我向[email protected] 发送电子邮件,那么我会收到返回的消息:
邮件传递失败:将邮件返回给发件人
此消息是由邮件传递软件自动创建的。
您发送的邮件无法传递给一个或多个收件人。这是一个永久性错误。以下地址失败:
[email protected] 未知用户报告-MTA:dns;mail.mydomain.com
行动:失败
最终收件人:rfc822;[email protected]
状态:5.0.0
所有邮箱都是通过 VESTA CP 创建的并且确实存在,passwd文件位于 /home/user/conf/mail/mydomain.com/ 并包含以下条目:
bender:{MD5}$1$XXX:user:mail::/home/user:0
邮件服务器主机:mail.mydomain.com
MX 条目:mail.mydomain.com
exim 配置文件中通过 dovecot 进行身份验证:
dovecot_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
dovecot_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
Dovecot 的10-auth.conf文件包含以下条目:
disable_plaintext_auth = no
auth_verbose = yes
auth_mechanisms = plain login
!include auth-passwdfile.conf.ext
Dovecot 的auth-passwdfile.conf.ext:
passdb {
driver = passwd-file
args = scheme=MD5-CRYPT username_format=%n /etc/exim/domains/%d/passwd
}
userdb {
driver = passwd-file
args = username_format=%n /etc/exim/domains/%d/passwd
}
/etc/exim/domains/mydomain.com - 符号链接到/home/user/conf/mail/mydomain.com/
我可以使用所有这些邮件帐户成功登录 RoundCube Web 界面。
我花了 3 天时间试图在互联网上找到答案并尝试更改 exim/dovecot 配置文件,但没有任何帮助。我被困住了。我猜像 admin/info/dev 这样的电子邮件是一些受信任的标准,或者存在于以前的 passwd 文件/配置文件中的某个地方,但是我在我的服务器上没有找到任何东西,无论如何,如果我在 /home 中更改用户名或密码哈希/user/conf/mail/mydomain.com/passwd 我什至无法登录 RoundCubeMail 并发送电子邮件。我是邮件服务器的新手,所以我什至不知道在哪里挖掘,我尽我所能尝试了我的知识。
PS exim 和 dovecot 带有 VESTA CP,但由于升级到最新版本的 mysql 依赖性,我手动删除并安装了它们。
您的 dovecot 配置配置为使用虚拟用户数据库,即您的电子邮件用户不是服务器的系统用户。另一方面,Exim仅配置为将邮件传递给本地系统用户。
您需要将其配置为使用 Dovecot 用户数据库(参见Dovecot 文档)。所以:
localuser
路由器,在路由器之后添加一个路由器以检查 Dovecot 用户
localuser
:在传输部分的任何地方添加一个
transport
(如上述链接中所述):使用以下命令测试路由配置:
编辑:
lsearch;/etc/exim/domains/${domain}/passwd
要求您授予Exim4访问dovecot文件的权限passwd
。这可能存在安全风险,因为此文件包含真实密码。这样你就可以:注释掉
local_parts
条件。不需要passwd
文件访问,但您的服务器将在会话期间接受任何用户名,SMTP
并在之后为不存在的用户名生成退回消息。由于垃圾邮件中的大多数Return-Path
地址都是伪造的,这会将邮件发送到错误的地址。生成并维护第二个文件,其中仅包含虚拟用户的用户名:
并将其作为
lsearch
.顺便说一句,您应该考虑将 Dovecot 中的密码方案(参见Dovecot 文档)更改为更现代的方式,即现代发行版文件中使用的SHA512-CRYPT行。
/etc/shadow