PHPMailer GoDaddy服务器SMTP连接被拒绝

有一天,我的GoDaddy托pipe网站遇到了一些问题。 我打电话给他们的技术支持,和我交谈的人提出,我的问题与我在Windows系统上的事实有关,在Linux系统上会更好。 对此没有意见,我同意了,他们把我转过来。

在这个过渡之后,我的PHPMailerfunction已经抛弃了我。 我已经有几个月的工作,所以我知道我的设置是准确的。 我已经与GoDaddy确认了我想要发送的帐户没有从他们的angular度改变。 用户端没有改变(如新密码)。 底线,唯一不同的是,我的网站现在托pipe在Linux服务器上。 而已。

所以我认为我的PHPMailer困难必须与此相关,因为在发生服务器转换的时刻,已经运行数月的脚本失败了,这太巧合了。 但为什么? 我花了一个小时的技术支持,他们没有看到任何错误的服务器设置。 我们validation了我的设置(只是为了好玩)。 一切看起来不错,但当我发送电子邮件,我得到这个错误:

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

关于这种types的错误有很多文章,而且几乎所有这些都与第一次进行错误设置或省略设置的人员有关。 但是,我知道我的设置是完整的,准确的,因为我已经成功地使用了几个月。 为了完整起见,我会在这里发布它们:

 $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文件? 我一起工作的那个人尽力帮助我,但他可能根本就不知道有什么。

任何帮助表示赞赏。 让我知道,如果有任何其他信息,我可以提供。 谢谢!

编辑:我也应该提到一些我做的其他尝试。 不pipe怎样,我都会得到同样的结果。

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

Solutions Collecting From Web of "PHPMailer GoDaddy服务器SMTP连接被拒绝"

看来这是一个持续的问题,让我加上我自己的经验。

我们的网站使用PHPMailer,该网站托管在GoDaddy Linux服务器上。 似乎是正确的设置(根据我所能找到的所有内容和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),服务器relay-hosting.secureserver.net,smtpout.secureserver.net:[端口]等),用户名,密码等。 我打电话给goDaddy。 另外40分钟后,有人透露:

1)“工作区”电子邮件帐户正在退休。 这很重要,因为如果你今天有一个与goDaddy的电子邮件帐户,你可能有一个工作区帐户。 根据技术支持代表,这是从你的Linux帐户分开托管。

2)goDaddy正在向cPanel电子邮件帐户转移。 欢呼! 时间表? “…在未来的2到3年!”

3)当我和代表通电话时,我把我们的账户从工作区移到了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是真正的奖励!

我在GoDaddy上使用@ surfbird0713这样的Linux。 在我的第32次尝试中,以下也为我工作:

 $mail2->Host = localhost; //$mail2->SMTPAuth = false; //$mail2->Username = 'xxxx@xxxxxx.com'; //$mail2->Password = '*******'; //$mail2->SMTPSecure = 'tls'; //$mail2->Port = 465; 

我以前尝试与用户名,登录,端口等。当我注释掉所有这些,只是与本地主机一起工作。

我已经遇到这个问题很多个星期了。 最后,解决了。 首先,我要说明问题的原因(就像我经历过的那样)。 GoDaddy只允许端口465出去。 因此,您无法访问任何不使用任何3个端口的SMTP服务器。 但是,如果您使用来自每个示例的GMAIL或任何其他重播服务器(特别是来自加拿大贝尔,在端口465 )的SMTP,则来自GoDaddy的任何中继请求将被阻止,因此您将看到Connection Refused (111) 。 是的,他们是托管服务的竞争对手……所以,请在自己的问题得到解决之前得出自己的结论。 更糟糕的是,当您从GoDaddy提供的relay-hosting.secureserver.net发送电子邮件时,您将面临长时间排队的重大不便,可能需要几分钟的时间才能收到电子邮件。 更糟糕的是,贝尔加拿大(或贝尔分支机构)的电子邮件帐户的人不会看到从这个中继服务器的电子邮件 – 电子邮件甚至没有得到您的垃圾邮件! 由于电子邮件被贝尔完全阻止(他们的借口=从GoDaddy太多的垃圾邮件)。

所以,最近我做了这个,对我来说工作得很好。 如果您有GoDaddy的托管服务,请注册一个电子邮件帐户。 然后使用该电子邮件帐户,例如mywebmail@mydomain.com ,使用PHPMail执行此操作:

 $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Host = "smtpout.secureserver.net"; $mail->Username = "mywebmail@mydomain.com"; /*Substitute with your real email*/ $mail->Password = "myverylongpassword"; /*Substitute with your real password*/ $mail->SMTPAuth = true; $mail->Port = 80; 

然后做你的常规PHPMailing的东西…这对我很好。 我希望它对你也一样。

经过很多挫折之后,这也对我有效。

 include("includes/class.phpmailer.php"); date_default_timezone_set('UTC'); define('SMTP_HOST','relay-hosting.secureserver.net'); define('SMTP_PORT',25);** define('SMTP_USERNAME','me@aravindnc.com'); define('SMTP_PASSWORD','me123'); define('SMTP_AUTH',false); $email = 'aravind_n_c@yahoo.co.in'; $firstName = 'Aravind'; $mail = new PHPMailerR(); $mail->IsSMTP(); $mail->SMTPDebug = 1; $mail->SMTPAuth = SMTP_AUTH; $mail->Host = SMTP_HOST; $mail->Port = 25; $mail->Username = SMTP_USERNAME; $mail->Password = SMTP_PASSWORD; $mail->SetFrom(SMTP_USERNAME,'AravindNC.IN'); $mail->AddReplyTo(SMTP_USERNAME,"AravindNC.IN"); $mail->Subject = "Welcome to AravindNC.IN"; $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; $mail->MsgHTML('This is a test.'); $mail->AddAddress($email, 'Aravind NC'); $mail->Send(); ?> 

我有同样的问题,但我试过这个

 $mail->SMTPAuth = false; 

和HOSTNAME: relay-hosting.secureserver.net

而Bingoooooo它的工作

请在SMTP中做一次这个设置

使用上面的一些建议,我可以在GoDaddy的共享主机上启动并运行带有电子邮件的Turnkey Bootstrap站点。

我做了一个AJAX调用email.php包含:

  <?php require 'PHPMailerAutoload.php'; if ($_POST) { $name = $_POST['contactName']; $email = $_POST['contactEmail']; $message = $_POST['contactMessage']; /* Don't touch */ $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = "relay-hosting.secureserver.net"; $mail->SMTPAuth = false; $mail->setFrom($email, $name); /* end */ /* Configure the address the email will be sent to */ $mail->addAddress('administrator@stackchampion.com', 'Adam InTae Gerard'); $mail->Subject = 'Re: StackChampion Inquest'; /* This is forwarded through a GoDaddy forwarding account */ $mail->Body = $message; if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; } } ?> 

我在这里提供了一个GitHub上的工作演示:

https://github.com/Thoughtscript/wp_postlib_godaddy_php_emailer

这是免费使用和开源,但相关的代码在上面列出。 他们的SMTP服务器显然有很多问题 – 我发现你可以通过使用他们提供的不需要认证的中继服务器来绕过这个服务器,尽管他们仍然可以与你的注册邮件中的一个相关联。

希望帮助别人! 干杯!

那么,我已经解决了,但不是一个好方法。 在耗尽了所有我能想到的东西之后,我只是举起手来,告诉GoDaddy把我切换回Windows服务器。 一旦他们这样做,问题就消失了。 由于我并不关心我在哪种类型的服务器上,这个结果是令人满意的,但很难令人满意。

所以,对于任何相信他们已经正确设置PHPMailer但无法使其工作的GoDaddy客户,我的建议是找出您是否在Linux服务器上。 在我看来 ,GoDaddy的Linux服务器设置为阻止这种类型的邮件交易。 我不能肯定地说,因为我只相信那是因为我没能成功。 但我可以清楚地说,我的PHPMailer设置是准确的,至少在Windows中。

也许这将有助于节省一些时间和挫折。 如果有人有更好的主意,请发帖。

如果您的主机上有自己的电子邮件服务器,您的电子邮件服务器使用以下端口25,465,587。 GoDaddy的设置:

 $mail->isSMTP(); $mail->Host = localhost; $mail->SMTPAuth = true; $mail->Username = 'example@gmail.com'; $mail->Password = 'password'; //$mail->SMTPSecure = 'tls'; //$mail->Port = 587; 

在其他服务器上需要创建一个邮箱与您的域名:

 $mail->isSMTP(); $mail->Host = localhost; $mail->SMTPAuth = true; $mail->Username = 'example@yourdomain.com'; $mail->Password = 'password'; //$mail->SMTPSecure = 'tls'; //$mail->Port = 587; 

2015年1月更新:我只需要解决这个确切的问题。 你需要有cPanel电子邮件帐户的GoDaddy Linux主机:

  1. 在电子邮件帐户部分,在下拉列表中的每个电子邮件地址旁边,单击“配置电子邮件客户端”选项。
  2. 在下一页上,向下滚动到“手动设置”。 在这里您会看到,GoDaddy现在为每个电子邮件地址创建一个定制的传入/传出服务器。 因此,使用传出服务器SSL,auth:true,端口:465,电子邮件/密码。

希望有所帮助。

改变这个:

 $mail->Host = 'smtpout.secureserver.net:465'; $mail->SMTPSecure = "ssl"; 

对此:

 $mail->Host = 'smtpout.secureserver.net:25'; 

它为我工作!

根据Godaddy,取代

 $mail->Host = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net" 

 $mail->Host = "smtp.secureserver.net"; //also tried "relay-hosting.secureserver.net" 

它为我工作。

GoDaddy / Linux(cPanel)/ PHPMailer

 require_once("../include/PHPMailer-master/PHPMailerAutoload.php"); $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = "a2plcpnXXXXX.prod.iad2.secureserver.net"; $mail->SMTPDebug = 2; $mail->SMTPAuth = true; $mail->Username = "your username"; $mail->Password = "your password"; $mail->SMTPSecure = "tls"; $mail->Port = 587; 

随意使用$ mail-> From$ mail-> FromName值的任何电子邮件/名称。 希望这可以帮助。

刚刚有这个问题,联系GoDaddy,他们把我的MX从本地切换到远程,它立即解决了问题! 只要有人遇到这个问题,就去找一个人。

经过几天的摔跤这个问题,并得到它的工作,我想我会更新这个线程2017年。希望我可以节省一些人浪费几个小时。 我用cpanel托管在Godaddy上。 这是我终于碰到的SMTPAutoTLS设置,并试图这是失踪的一块。 我收到的错误如下:

PHP警告:stream_socket_enable_crypto():对等证书CN = *.prod.iad2.secureserver.net' did not match expected CN= localhost'369行

邮件程序错误:SMTP连接()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

以下是适用于我的PHPMailer设置。

 $mail->isSMTP(); $mail->Host = 'localhost'; $mail->Port = 25; $mail->SMTPSecure = false; $mail->SMTPAutoTLS = false; $mail->SMTPAuth = false; 

这些将成为GoDaddy的SMTP设置:

 require("PHPMailer-master/PHPMailerAutoload.php"); $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPDebug = 2; $mail->From = "yourmail@ddd.com"; $mail->FromName = "name"; $mail->Host = "localhost"; $mail->SMTPAuth = false; $mail->SMTPSecure = false; $mail->SMTPAutoTLS = false; 

GoDaddy服务器SMTP连接被拒绝。

Bigrock $ mail-> Port = 587; // SMTP ser * vers

GoDaddy $ mail-> Port = 25; // SMTP ser * vers