邮件发送失败,服务器返回错误提示Denied sendmail to remote domain。。。
关于Linux中sendmail发送失败的一些经验总结
今天在使用Wordpress系统注册用户时,又碰到了一个以前似乎常遇到的问题,不仅在Moodle中遇到过,在其他几个基于Linux运行的软件系统都遇到过。就是注册完成后,查看注册用户的Email时,发现总是收不到确认信。
但是在Moodle中,由于使用了外部的SMTP服务器用来发送邮件, 而Wordpress使用的phpmail,所以当用户系统需要发送邮件时,是先将邮件通过Linux中的sendmail发送出去,这些邮件都可以在/var/log/maillog中查看到。
通过查看,发现所有注册时发送的信息全部被deny了,郁闷啊!:-(
错误信息为Connection refused by [127001],百度了一下,发现国内这些文章几乎没有,在Google中发现,搜索结果达到20多万条,看来是有办法解决了。找了几篇发现都是用户询问ISP服务商关于这个错误的信息,无语…
最终在一篇《Sendmail remote connection refused》的文章中找到了关于解决该问题的办法。
使用telnet测试25端口,发现在使用localhost和本机IP地址的时候都是deny。文章中提到两种解决的方法:
通过修改/etc/mail/sendmailcf中的字段
O DaemonPortOptions=Port=smtp,Addr=127001, Name=MTA
在其前面加入#从而注释该行。
通过修改/etc/mail/sendmailmc中的字段DAEMON_OPTIONS(`Port=smtp,Addr=127001, Name=MTA')为
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127001, Name=MTA’)
使用m4将sendmialmc编译为sendcf,命令如下:
m4 sendmailmc > sendmailcf
接下来重启一下sendmail,也可以使用sendmail -q命令将未发送出去的邮件发送。
当再次查看email时,Everything is ok!
0条评论