因为debian默认安装的是sendmail,所以以前试过使用它来发邮件,但是不管怎么配置,总是发送不出去,以为是RDNS的问题,但是一查发现我的VPS默认已经做了RDNS,百思不得其解,无奈使用了msmtp代理google的邮箱,总算能发出去了,但是还有一个问题,邮件发送出去后被接受,查看时显示的发送方是google,有点不爽,于是……

放狗搜了一下午,总算有点收获,用exim4代替sendmail,没怎么配置却成功的发送出去了,写下过程。

1
2
3
apt-get remove sendmail* --purge//先卸载默认的sendmail,注意此步会把bsd-mailx也一起卸了。就没有mail这个命令了
apt-get install exim4 exim4-config bsd-mailx //安装exim4 bsd-mailx
dpkg-reconfigure exim4-config //配置exim4

选internet,下一步比较重要,system mail name这里要写你反解的DNS,经过我的测试,随便写的会被一些邮箱认为是垃圾邮件被退回,但是还有一个有趣的现象,我在另一个VPS上(也做了RDNS)配置exim4时,错把system mail name填了我现在这个VPS的RDNS,测试的时候却正确的发出了邮件,不知道怎么回事。

还有一个需要注意的地方就是选择绑定IP的时候,如果你只是想发送邮件就可以了,不需要接收,就填127.0.0.1就可以了,注意如果你的VPS没有IPV6支持的话把后面那个::1 IPV6地址删掉,否则会造成exim无法启动,提示

exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken failed  

查看/var/log/exim4/mainlog 提示IPV6支持错误。

这样就可以成功的发送出邮件了,如果想指定发送发邮件地址的后缀,比如noreply@kwxiaozhu.com 可以修改/etc/mailname 把这里改成你想要的后缀就行了。

还有添加php mail支持,修改sendmail_path = “/usr/sbin/sendmail -t” 注意把 -i参数去掉,否则发送会很慢。