一尘不染

PHPMailer GoDaddy服务器SMTP连接被拒绝

php

前几天,我的GoDaddy托管网站遇到了一些问题。我打电话给他们的技术支持,与我交谈的人建议我的问题与我在Windows机器上,最好在Linux机器上使用有关。我对此没有意见,我同意了,他们把我换了。

过渡之后,我的PHPMailer功能让我迷茫了。我已经工作了几个月,所以我知道我的设置是正确的。我已与GoDaddy确认,从他们的角度来看,我要发送的帐户并未更改。用户侧未进行任何更改(如新密码)。底线是,唯一不同的是我的站点现在托管在Linux服务器上。而已。

因此,我认为我的PHPMailer困难一定与此有关,因为一个巧合的是,已经运行了几个月的脚本在发生服务器转换的确切时刻失败了。但为什么?我花了一个小时来获得他们的技术支持,他们发现服务器设置没有问题。我们验证了我的设置(只是为了好玩)。一切看起来不错,但是当我发送电子邮件时,出现此错误:

SMTP -> ERROR: Failed to connect to server: Connection refused (111)SMTP Connect() failed.

关于此类错误的帖子很多,几乎所有帖子都与第一次输入设置或输入设置错误或省略设置的人有关。但是,我知道我的设置是完整且准确的,因为我已经成功使用了几个月。为了完整起见,我将它们发布在这里:

$mail = new PHPMailer();
$mail->IsSMTP();  //telling the class to use SMTP
$mail->isHTML(true);
$mail->Host         = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net"
$mail->WordWrap     = 50;
$mail->SMTPAuth     = true;
$mail->SMTPSecure   = "ssl";
$mail->Port         = 465;
$mail->Username     = "example@email.com";
$mail->Password     = *******;
$mail->Subject      = "Test Email";
$mail->SMTPDebug = 1;

有谁知道为什么会发生这种情况?是否存在某些技术支持人员可能不了解的服务器设置,例如在我的php.ini文件中?与我一起工作的那个人尽力帮助我,但他可能只是不知道有什么事。

任何帮助表示赞赏。让我知道是否可以提供其他信息。谢谢!

编辑:我还应该提到我所做的其他一些尝试。无论如何,我都会得到相同的结果。

1)使用端口587的TLS 2)不使用端口25、80和3535的SSL。2)我自己的gmail地址,用于修改服务器,用户名,密码等。


阅读 498

收藏
2020-05-26

共1个答案

一尘不染

看来这是一个持续的问题,让我补充一下自己的经验。

我们的网站使用PHPMailer,并且该网站托管在GoDaddy linux服务器上。 似乎
正确的设置(根据我在SO和goDaddy支持网站上可以找到的所有内容)如下:

SMTP_SERVER: smtpout.secureserver.net (or alternatively relay-hosting.secureserver.net)
SMTP_PORT: 465 //or 3535 or 80 or 25
SMTP_AUTH: true //always
SMTP_Secure: 'ssl' //only if using port 465

经过6个多小时的尝试各种端口(25、3535、4655)的变化后,服务器中继了hosting-
hosting.secureserver.net,smtpout.secureserver.net:[port]等),用户名,密码等。我叫goDaddy。再过40分钟后,发现:

1)“工作区”电子邮件帐户已停用。这很重要,因为如果您今天拥有goDaddy的电子邮件帐户,那么您可能会有一个Workspace帐户。根据技术支持代表的说法,这是与Linux帐户分开托管的。

2)goDaddy正在使用cPanel电子邮件帐户。欢呼!时间表?“ …在接下来的2至3年内!”

3)当我与代表通话时,我将帐户从Workspace移到了cPanel帐户。真的很容易。

4)将电子邮件帐户(包括编辑MX记录)更改为cPanel电子邮件(与“工作区”电子邮件)之后,使用PHPMailer的网络表单电子邮件的适当设置为:

SMTP_SERVER: localhost   //(and I mean literally: "localhost"- in place of smtp.secureserver.net and relay-hosting.secureserver.net, etc.)

…和其他所有(如上所述)相同…

更改后,我使用PHPMailer构建的Webform可以完美运行!

在PHPMailer设置中使用您的cPaneL电子邮件帐户登录名(用户名)和密码,您的网络电子邮件将无缝运行!

另外一个好处是可以在[yourdoman] \ webmail上访问webmail(有人使用了吗?)。无需再记住神秘的网址了!帐户可以是IMAP或POP!

诚然,这意味着您必须使用goDaddy的cPanel电子邮件帐户,但是使用PHPMailer使Webform完美无瑕地工作才是真正的收获!

2020-05-26