![无法使 sendmail 使用远程 SMTP 服务器](https://linux22.com/image/72957/%E6%97%A0%E6%B3%95%E4%BD%BF%20sendmail%20%E4%BD%BF%E7%94%A8%E8%BF%9C%E7%A8%8B%20SMTP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%20.png)
我按照以下指南了解如何设置 sendmail 以使用远程 SMTP 服务器并进行身份验证:https://www.smtp2go.com/docs/sendmail/
但是,sendmail 显示它发送电子邮件,但调试显示它连接到本地主机而不是远程主机。
我执行以下命令来发送电子邮件:
sendmail -X sendmail_log [email protected] [email protected] < /tmp/email.txt
我的主机“host1.com”只允许从“[电子邮件受保护]'。
电子邮件.txt:
Subject: Terminal Email Send
Email Content line 1
Email Content line 2
这是日志文件中使用 localhost 的位置:
07460 <<< Subject: Terminal Email Send
07460 <<<
07460 <<< Email Content line 1
07460 <<< Email Content line 2
07460 <<< [EOF]
07460 === CONNECT [127.0.0.1]
答案1
Sendmail-8.12+:未设置 root uid 安装 => 通过 127.0.0.1:25 发送
在sendmail-8.12之前,“Sendmail by sendmail.org”通常被安装为设置root uid程序。它曾经造成了无穷无尽的安全问题。为了避免此类安全风险,Sendmail-8.12 将消息传递给以 root 身份运行并侦听的 sendmail 守护进程127.0.0.1:25
。
如果您想测试您的配置,您可以以 root 身份执行测试命令,并-Am
添加到 sendmail 的命令行选项。
Sendmail 默认使用submit.cf
配置文件并将消息发送到127.0.0.1:25
.某些命令行选项(包括-Am
)使 sendmail 使用sendmail.cf
配置文件,但(通常)它需要 root 权限才能正确运行。
https://www.sendmail.com/sm/open_source/security/secure-install/
http://linux.die.net/man/8/sendmail.sendmail