连接被拒绝。为什么我无法从一台服务器发送电子邮件,而可以从另一台服务器发送电子邮件?

连接被拒绝。为什么我无法从一台服务器发送电子邮件,而可以从另一台服务器发送电子邮件?

我正在尝试使用 PHP 发送电子邮件mail()。我对两台服务器都有完全访问权限。iptables两台服务器均无异常规则(没有任何东西阻止默认安装sendmail

sendmail几年前,我在一台服务器上安装了它(Ubuntu 10.10),它可以很好地从 PHP 发送邮件。新服务器(Ubuntu 10.04,本周安装)不会发送邮件 - 或者正在尝试,但每个收件人都拒绝接收

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

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

我唯一能想到的就是,为新服务器设置的反向 DNS 未被收件人 MX 服务器上的垃圾邮件过滤器接受。这可能吗?我已经提交了请求,要求将反向 DNS 更改为更适合新服务器域的 DNS。

较旧的服务器位于NAT路由器,因此从旧服务器发送的电子邮件的 IP 地址解析为“正确”代表服务器的域名……但新服务器的 IP 直接连接到服务器,但当前域名解析解析为完全不同的域。

还有什么是我可能遗漏的吗?


更新

示例/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.

答案1

解决了!原来,托管服务提供商设置了一些试用帐户阻止功能,以防止滥用。显然,一旦新客户通过身份验证(我已经通过了),这些功能通常会被解除,但事实并非如此。谢天谢地,现在他们已经解除了,我可以完美地发送电子邮件了。

所以这里的教训是:不要假设任何事情!回到你的供应商那里第一的向他们核实是否有任何事情可能会妨碍你所做的事情。

很抱歉打扰了各位好心人。感谢你们提出的所有建议。它们最终都帮助我找到了答案 :)

答案2

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

如果可行那么就取决于 sendmail 配置。

因为这是 Ubuntu,所以我真的很想apt-get install postfix从向导中选择正确的选项,让它自行解决!除非您有真正充分的理由使用 sendmail(它们在 CLI、PHP 等方面几乎 100% 兼容),否则请安装 Postfix。

答案3

这是网络问题。“连接被拒绝”意味着连接被拒绝。所以与软件无关,而是与网络有关。

从网络问题检查开始。Ping、traceroute、telnet、route、iptables 等都浮现在脑海中。首先:网线插好了没?

相关内容