配置 sendmail 在 smtp 服务器上进行中继

配置 sendmail 在 smtp 服务器上进行中继

我正在使用 ubuntu 发行版。

我使用 apt 安装了 sendmail,并编辑了/etc/mail/sendmail.mc,并添加了以下行

define(`SMART_HOST', `ssl0.ovh.net')
FEATURE(`authinfo')

线前

define(`_USE_ETC_MAIL_')dnl

并且还配置了身份验证(/etc/mail/authinfo):

AuthInfo:ssl0.ovh.net "U:[email protected]" "P:123456" "M:PLAIN"

m4 sendmail.mc >sendmail.cf然后跑service sendmail restart

我创建了一个文件来测试它email.txt

To: [email protected]
From: [email protected]
Subject: Foo Bar

Hello
(empty line)

然后我测试了一下:cat email.txt | /usr/lib/sendmail -bm -t -v

但失败了:

[email protected]... Connecting to [127.0.0.1] via relay...
[email protected]... Deferred: Connection refused by [127.0.0.1]

为什么它连接 127.0.0.1 而不是外部 smtp 服务器(ssl0.ovh.net)?

答案1

Sendmail 过去被安装为设置 root uid 的程序。为了避免安全风险,Sendmail-8.12+ 不再(默认)被安装为设置 root uid 的程序。

非 root 用户执行的 Sendmail 将消息传递到在 127.0.0.1:25 以 root 权限运行的 sendmail 守护程序。非 root 用户执行的 Sendmail 使用/etc/mail/submit.cf而不是/etc/mail/sendmail.cf

https://www.sendmail.com/sm/open_source/security/secure-install/


要以 root 身份测试您的 sendmail.cf 配置,请执行以下命令(-Am添加了您的测试命令):

cat email.txt | /usr/lib/sendmail -Am -bm -t -v

相关内容