configurationsendmail在一个smtp服务器上中继

我使用的是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.cfservice 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