我使用的是Ubuntu发行版。
我用apt安装了sendmail,编辑了/etc/mail/sendmail.mc并添加了行
define(`SMART_HOST', `ssl0.ovh.net') FEATURE(`authinfo')
在线之前
define(`_USE_ETC_MAIL_')dnl
还configuration了authentication(/ etc / mail / authinfo):
AuthInfo:ssl0.ovh.net "U:[email protected]" "P:123456" "M:PLAIN"
并运行m4 sendmail.mc >sendmail.cf和service sendmail restart
我创build了一个文件来testing它email.txt :
To: [email protected] From: [email protected] Subject: Foo Bar Hello (empty line)
我用: cat email.txt | /usr/lib/sendmail -bm -t -vtesting它 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)?
Sendmail曾经被设置为root uid程序。 Sendmail-8.12 +不再(默认情况下)安装为root uid程序,以避免安全风险。
由非root用户执行的Sendmail将消息传递给以127.0.0.1:25的超级用户权限运行的sendmail守护进程。 由非root用户执行的Sendmail使用/etc/mail/submit.cf而不是/etc/mail/sendmail.cf 。
https://www.sendmail.com/sm/open_source/security/secure-install/
以root身份testing你的sendmail.cfconfiguration执行下面的命令(你的testing命令加上-Am ):
cat email.txt | /usr/lib/sendmail -Am -bm -t -v