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地址修改服务器,用户名,密码等
看来这是一个持续的问题,让我加上我自己的经验。
我们的网站使用PHPMailer,该网站托pipe在GoDaddy Linux服务器上。 似乎是正确的设置(根据我所能find的所有内容和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帐户分开托pipe。
2)goDaddy正在向cPanel电子邮件帐户转移。 欢呼! 时间表? “…在未来的2到3年!”
3)当我和代表通电话时,我把我们的账户从工作区移到了cPanel账户。 真的很容易做到。
4)将您的电子邮件帐户(包括编辑您的MXlogging)更改为cPanel电子邮件(与“工作区”电子邮件)后,使用PHPMailer的网页forms电子邮件的相应设置为:
SMTP_SERVER: localhost //(and I mean literally: "localhost"- in place of smtp.secureserver.net and relay-hosting.secureserver.net, etc.)
…和其他一切(如上)一样…
我用PHPMailer构build的webform在完成这个改变后工作得很好!
在PHPMailer设置中使用您的cPaneL电子邮件帐户login(用户名)和密码,您的networking电子邮件将无缝工作!
另外一个好处是可以在[yourdoman] \ webmail上访问webmail(是否有人使用这个)。 没有更多的神秘url记住! 帐户可以是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;
我以前尝试与用户名,login,端口等。当我注释掉所有这些,只是与本地主机一起工作。
我已经遇到这个问题很多个星期了。 最后,解决了。 首先,我要说明问题的原因(就像我经历过的那样)。 GoDaddy只允许端口465
出去。 因此,您无法访问任何不使用任何3个端口的SMTP服务器。 但是,如果您使用来自每个示例的GMAIL或任何其他重播服务器(特别是来自加拿大贝尔,在端口465
)的SMTP,则来自GoDaddy的任何中继请求将被阻止 – 因此您将看到Connection Refused (111)
。 是的,他们是托pipe服务的竞争对手……所以,请在自己的问题得到解决之前得出自己的结论。 更糟糕的是,当您从GoDaddy提供的relay-hosting.secureserver.net
发送电子邮件时,您将面临长时间排队的重大不便,可能需要几分钟的时间才能收到电子邮件。 更糟糕的是,贝尔加拿大(或贝尔分支机构)的电子邮件帐户的人不会看到从这个中继服务器的电子邮件 – 电子邮件甚至没有得到您的垃圾邮件! 由于电子邮件被贝尔完全阻止(他们的借口=从GoDaddy太多的垃圾邮件)。
所以,最近我做了这个,对我来说工作得很好。 如果您有GoDaddy的托pipe服务,请注册一个电子邮件帐户。 然后使用该电子邮件帐户,例如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中做一次这个设置
使用上面的一些build议,我可以在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服务器显然有很多问题 – 我发现你可以通过使用他们提供的不需要authentication的中继服务器来绕过这个服务器,尽pipe他们仍然可以与你的注册邮件中的一个相关联。
希望帮助别人! 干杯!
那么,我已经解决了,但不是一个好方法。 在耗尽了所有我能想到的东西之后,我只是举起手来,告诉GoDaddy把我切换回Windows服务器。 一旦他们这样做,问题就消失了。 由于我并不关心我在哪种types的服务器上,这个结果是令人满意的,但很难令人满意。
所以,对于任何相信他们已经正确设置PHPMailer但无法使其工作的GoDaddy客户,我的build议是找出您是否在Linux服务器上。 在我看来 ,GoDaddy的Linux服务器设置为阻止这种types的邮件交易。 我不能肯定地说,因为我只相信那是因为我没能成功。 但我可以清楚地说,我的PHPMailer设置是准确的,至less在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;
在其他服务器上需要创build一个邮箱与您的域名:
$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主机:
- 在电子邮件帐户部分,在下拉列表中的每个电子邮件地址旁边,单击“configuration电子邮件客户端”选项。
- 在下一页上,向下滚动到“手动设置”。 在这里您会看到,GoDaddy现在为每个电子邮件地址创build一个定制的传入/传出服务器。 因此,使用传出服务器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托pipeGodaddy。 这是我终于碰到的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