我会将我拥有的所有信息添加到该主题中,如果遗漏了任何内容,请询问,而不是投票关闭该主题。
我在 CentOs 6.8 上安装了 RedHat Exim 4.72,我还使用 CSF 防火墙,它设置了一个 CronJob 来自动更新。当 CSF 有更新可用时,会向根地址发送一封包含更新 Cron 信息的电子邮件,但这会一直生成传递状态通知。
不仅 CSF 会这样做,如果其他应用程序执行 Cron 并且出现问题或需要向 root 用户发送警报,则会生成传递状态通知。
似乎系统无法向 root 用户发送电子邮件。电子邮件报告如下:
该消息是由邮件传递软件自动创建的。
您发送的邮件无法递送给一个或多个收件人。这是一个永久性错误。以下地址失败:
根@
Exim 日志显示:** root@:邮件域“”在语法上无效
在 etc/aliases 中我设置
根:[电子邮件保护]
已保存并完成 newaliases 操作,但此操作无效,问题仍然存在。我还尝试过在根文件夹中创建 .forward 文件,但问题仍然存在。
我不明白为什么会发生这种事。
SSH 命令:echo test | mail -v -s "test message" root
还生成传递状态通知
[root@domain etc]# echo test | mail -v -s "test message" root
Loading lookup modules from /usr/lib64/exim/4.72-8.el6/lookups
Loaded 0 lookup modules
LOG: MAIN
<= [email protected] U=root P=local S=458
[root@domain etc]# Loading lookup modules from /usr/lib64/exim/4.72-8.el6/lookups
Loaded 0 lookup modules
delivering 1bO9gE-0006iU-2t
LOG: MAIN
** root@: mail domain "" is syntactically invalid
Loading lookup modules from /usr/lib64/exim/4.72-8.el6/lookups
Loaded 0 lookup modules
LOG: MAIN
这是什么问题?我该如何解决?
答案1
它实际上是尝试发送root@
没有域名的电子邮件,这显然是无效的(因此出现错误domain "" is syntactically invalid
)。exim4 应该采取几个步骤才能将您的无效电子邮件地址转换为有效的电子邮件地址。
首先,exim4 会检查您是否被允许提交不合格的电子邮件。来自文档,
默认情况下,仅对本地生成的邮件接受非限定地址。除非使用 -bnq 命令行选项,否则限定条件也适用于本地生成的邮件的标题行中的地址,例如 From: 和 To:。
由于您是mail
在本地使用(您正在mail
exim4 正在运行的服务器上运行,对吗?),所以这应该没问题。(否则,您需要参考recipient_unqualified_hosts
以确保您的主机有权向不合格的收件人发送邮件。)
其次,由于root
是电子邮件的收件人,exim4 将检查qualify_recipient
应添加哪个域。如果此处设置了域,则 exim4 会将其添加到电子邮件地址。否则...
接下来,exim4 尝试qualify_domain
重写发件人和收件人的地址。如果此处设置了域,则 exim4 会将其添加到电子邮件地址。否则...
最后,exim4 用于primary_domain
重写不合格的电子邮件。