我停止了 sendmail 服务并启动了 postfix。Sendmail 仍显示在电子邮件日志中?

我停止了 sendmail 服务并启动了 postfix。Sendmail 仍显示在电子邮件日志中?

该服务器安装了 sendmail 和 postfix。Sendmail 一直在运行,但无法正常工作。我停止了 sendmail 服务并启动了 postfix。通过检查端口 25 上的监听输出,确认只有 postfix 在运行。

lsof -i :25
COMMAND    PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME

master  119640 root   12u  IPv4 28103863      0t0  TCP localhost:smtp (LISTEN)

master  119640 root   13u  IPv6 28103864      0t0  TCP localhost:smtp (LISTEN)

然后我测试发送邮件:

echo "My message" | mail -s testing [email protected]

它没有到达 root 的收件箱。因此,我查看了 /var/log/maillog 中的日志,发现 sendmail 仍在使用中:

Feb 26 16:18:13 server sendmail[1582]: w1QLIC8N001582: [email protected], ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=30233, relay=exchangeserver.domain. [x.x.x.x], dsn=2.0.0, stat=Sent (<201802262118.w1QLIC8N001582@[email protected]> Queued mail for delivery)

这怎么可能?

答案1

程序mail运行sendmail以传递邮件(在客户端模式下,进程中没有打开任何监听端口)。阅读手册页有关详细信息。您可以通过设置变量来更改 MDA sendmail

发送邮件

要使用备用邮件传递系统,请将此选项设置为要使用的程序的完整路径名。应谨慎使用。

$ sendmail=/usr/bin/someothersendmail mail [email protected]
Subject: asdf
... and so on

但是由于 mail 希望 MDA 能够识别 sendmail 的选项,所以我并不真正明白它的用处。

另一种可能性是使用外部 SMTP 服务器代替sendmail

$ echo "This is the message body and contains the message" | mailx -v \
> -r "[email protected]" \
> -s "This is the subject" \
> -S smtp="mail.example.com:587" \
> -S smtp-use-starttls \
> -S smtp-auth=login \
> -S smtp-auth-user="[email protected]" \
> -S smtp-auth-password="abc123" \
> -S ssl-verify=ignore \
> [email protected]

答案2

此日志行不是来自任何监听 TCP 端口 25 的程序。看起来 rootcrontab正在通过 sendmail 直接提交邮件。或者它是某个非标准的 root 拥有的后台进程。

相关内容