!D678453B4C672EB0!716.entry

Postfix 554 5.7.1 Relay Access Denied
Postfix 安装后想在 Windows 或者 Linux 用邮件程序(Outlook或者Evolution等)法送邮件总是会显示

554 5.7.1 blahblah@mail.com: Relay access denied

但是安装在服务器上的 Squirrelmail 则收发正常。

查了一些资料,看到之所以出现这个信息是因为收件方服务器为了阻止垃圾邮件将从可疑IP地址或者没有注册的IP地址发送过来的邮件统统拒之门外。

看起来除了跟对方管理员商量以外没有方法,但是全世界的邮件服务器那么多都要互相注册,那邮件还让不让发了。

后来知道 postfix 的配置文件 /etc/main.cf 中有个 mynetworks 字段,默认情况下它只写着本地subnet,即 127.0.0.0/8,所以本地的 Squirrelmail 收发正常。 为了支持外部邮件程序,应该在这里添加外网的subnet,即本地服务器真实IP地址的 subnet,比如IP是 123.123.123.123 则应填写 123.123.123.0/24 。书写格式如下 “mynetworks = 123.123.123.0/24, 127.0.0.0/8″,然后重新启动 postfix 即可。 如 /etc/init.d/postfix restart

——————————————————————————–

我这上面写的完全错了,上面这些措施实行以后只会对 123.123.123.* 段内发送才有效,到了外地照样不行。

为此深思熟虑许久,领悟到OE上的SMTP验证需要服务器的支持,我的服务器根本没设置什么SMTP认证,所以即使OE设置很到位也无济于事。

所谓SMTP AUTH很简单,给服务器安上 SASL Library, 再让他与Postfix合作即可,网上这方面内容很多,如果使用的是 debian,去查看 ubuntu 文档是个好主意,上面问题的解答这里写得比较好:

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/94384/viewspace-600327/,如需转载,请注明出处,否则将追究法律责任。