拒绝连接。 为什么我不能从一台服务器发送邮件,但我可以从另一台服务器发送邮件

我试图使用邮件()从PHP发送电子邮件。 我可以完全访问这两个服务器。 没有任何不寻常的iptables规则(没有阻止默认安装的sendmail

几年前,我在一台服务器上安装了sendmail (Ubuntu 10.10),并且从PHP发送邮件就好了。 新的服务器(本周设置的Ubuntu 10.04)不会发送邮件 – 或者正在尝试,但每个收件人都拒绝接收

我检查了新服务器上的sendmail日志,它显示了收件人域的所有MX服务器都是Connection refused

这些服务器的设置没有区别。 他们已经有了默认的sendmail安装。 一个标准的LAMP堆栈。 它们完全位于不同的IP上,但是它们在相同的域下运行(尽pipe域上有不同的机器)。

我唯一能想到的是,为新服务器设置的反向DNS未被接收方MX服务器上的垃圾邮件filter接受。 那可能吗? 我已经提出了一个请求,将反向DNS改为适合新服务器的域。

旧的服务器在NAT路由器的后面,所以当从旧服务器发送时,电子邮件似乎来自的IP地址parsing为“正确”代表服务器的域名…但新服务器的IP直接连接到服务器,但是当前的rDNSparsing为完全不同的域。

还有什么我可以失踪?

更新:

示例/var/log/mail.log行

 Jan 11 12:16:03 ernesto sm-mta[1177]: q071CKnQ002371: to=<[email protected]>, ctladdr=<[email protected]> (33/33), delay=4+11:03:43, xdelay=00:00:00, mailer=esmtp, pri=58080351, relay=aspmx3.googlemail.com., dsn=4.0.0, stat=Deferred: Connection refused by aspmx3.googlemail.com. 

通过尝试手动连接到外部邮件服务器来检查您的出站连接。 最简单的方法可能是运行telnet aspmx.l.google.com 25 ,看看你是否联系。

如果这样的话,那么这是发送邮件configuration。

因为这是Ubuntu的,我真的很想apt-get install postfix ,从向导中select正确的选项,让它自行排列! 除非你有真正的理由使用sendmail(它们在CLI,PHP等方面几乎是100%的兼容),那么安装Postfix。

这是一个networking问题。 “连接被拒绝”是指连接被拒绝。 所以没有软件,但与networking。

从networking问题检查开始。 Ping,traceroute,telnet,route,iptables等等都浮现在脑海。 首先开始:networking电缆是否插入?

解决了! 事实certificate,托pipe服务提供商有一些试用账户阻止滥用。 显然,一旦新客户通过身份validation(我已经完成),这些通常会被解除,但事实并非如此。 谢天谢地,他们现在已经可以完美地发送电子邮件了。

所以这里的教训:不要假设任何东西! 如果有任何事情可能阻碍你的行为,请先回到你的提供者那里去查看他们。

对不起,好心人困扰你了。 谢谢你的所有build议。 他们都帮助find了答案:)