2016-07-07 147 views
0

我正在一个网站上工作,并且其中有一个表单用于通过PHPMailer通过gmail发送电子邮件。PHPMailer SMTP连接失败 - GoDaddy

我已将它设置正确,因为它适用于我的AWS EC2服务器。但是,当我在GoDaddy托管计划中使用完全相同的设置时,它不起作用(是的,我更改了'require'路径)。

我收到此错误:

Mailer Error: SMTP connect() failed.

这里是我的代码:

$mail = new PHPMailer; 

$mail->SMTPDebug = 0; 

$mail->isSMTP(); 
$mail->Host = "smtp.gmail.com"; 
$mail->SMTPAuth = true; 
$mail->Username = "**********@gmail.com"; 
$mail->Password = "*************"; 
$mail->SMTPSecure = "tls"; 
$mail->Port = 587; 

$mail->setFrom("**********@gmail.com", "Red's Mailer"); 
$mail->addAddress("*********@shaw.ca", "Name"); 

$mail->isHTML = true; 

$mail->Subject = "New Submission From " . $name; 
$mail->Body = $html_msg; 
$mail->AltBody = $alt_msg; 

对这个问题的任何想法?

+0

您是否尝试评论'$ mail-> isSMTP()'的建议? http://stackoverflow.com/questions/18496650/smtp-connect-failed-message-was-not-sent-mailer-error-smtp-connect-failed –

+0

@timberspine我只是这样做,它不起作用。 – RedXTech

+0

打开调试'$ mail-> SMTPDebug = 1'时,你看到了什么? –

回答

1

GoDaddy邮件服务器不支持任何包含aol,gmail,hotmail,yahoo,live,aim或msn的“FROM”标题条目的电子邮件。

如果你正在使用linux cPanel托管计划,那么你需要在你的php代码中改变几行,它会起作用!

$mail = new PHPMailer; 
$mail->SMTPDebug = 0; 
$mail->isSMTP(); 
$mail->Host = 'localhost'; 
$mail->Port = 25; 
$mail->ssl = false; 
$mail->authentication = false; 
$mail->addAddress("*********@shaw.ca", "Name"); 
$mail->isHTML = true; 
$mail->Subject = "New Submission From " . $name; 
$mail->Body = $html_msg; 
$mail->AltBody = $alt_msg; 
0

我有类似的问题。 GoDaddy不允许外部使用电子邮件与您的域名。如果你联系支持,你应该得到相同的答案。

+0

我也有同样的问题,但我提到的解决方案工作正常。 –

0

我发现为什么这不起作用 - GoDaddy,出于某种原因不喜欢让他们的客户使用其他人的SMTP服务器,所以你要么使用cPanel提供的电子邮件托管,这是非常缓慢并且无益。

我所做的就是将脚本托管在AWS ec2实例上,并将脚本的表单转换为该脚本。