linux mta 不将邮件转发到 root@localhost 到 smart_host

linux mta 不将邮件转发到 root@localhost 到 smart_host

我们在一些服务器将邮件转发到 root@localhost 的智能主机(exchange)时遇到问题。显然,exchange 不了解 localhost,因此会将邮件转发到 Internet,这给 Windows 管理员带来了存档方面的麻烦。

有问题的Linux的mta是sendmail.sendmail


There is 1 program that provides 'mta'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail

但是 sendmail 没有运行。

我如何才能排除发送到 root 或 root@localhost 的邮件转发到智能主机?

编辑:添加测试电子邮件日志

echo test | mailx -vvv root@localhost
Resolving host smtpp.example.com . . . done.
Connecting to x.x.x.x:smtp . . . connected.
220 XCHP12.example.com Microsoft ESMTP MAIL Service ready at Fri, 13 Oct 2023 13:42:27 +0200
>>> HELO vmhost
250 XCHP12.example.com Hello [y.y.y.y]
>>> MAIL FROM:<root@vmhost>
250 2.1.0 Sender OK
>>> RCPT TO:<root@localhost>
250 2.1.5 Recipient OK
>>> DATA
354 Start mail input; end with <CRLF>.<CRLF>
>>> .
250 2.6.0 <65292d1e.BMLW6UWNjXjY0mTp%root@vmhost> [InternalId=168414257611320, Hostname=XCHP21.example.com] 1553 bytes in 0.141, 10,729 KB/sec Queued mail for delivery
>>> QUIT
221 2.0.0 Service closing transmission channel

/var/log/maillog 中没有任何内容写入

我希望 root@localhost 每个实例本地传送到 /var/mail/spool/root。

如果我尝试只向“root”发送邮件,我根本收不到任何电子邮件

echo test | mailx -vvv root
Resolving host smtpp.example.com . . . done.
Connecting to x.x.x.x:smtp . . . connected.
220  Microsoft ESMTP MAIL Service ready at Fri, 13 Oct 2023 13:49:06 +0200
>>> HELO vmhost
250 EXCHP12.example.com Hello [y.y.y.y]
>>> MAIL FROM:<root@vmhost>
250 2.1.0 Sender OK
>>> RCPT TO:<root>
501 5.1.3 Invalid address
smtp-server: 501 5.1.3 Invalid address
"/root/dead.letter" 10/259
. . . message not sent.

问题在于智能主机不知道如何处理发往@localhost 的邮件,因此它将其发送到互联网,从而造成了不必要的噪音。

答案1

问题:(通过评论中提供的额外信息检测)
您的配置用于submit.cf中继全部消息发送到远程 SMTP 服务器。默认情况下,submit.cf将消息转发到监听 127.0.0.1 的本地 sendmail 守护进程。

建议的修复:
使用普通/标准 submit.cf 并配置 sendmail.cf 以使用智能主机。
发送到所有本地邮箱/地址的消息不会通过智能主机中继。
此类中继需要其他配置方式。

相关内容