SMTP - >错误:无法连接到服务器:连接超时(110)以下发件人地址失败:xxxxx@gmail.com错误

时间:2014-04-03 08:49:15

标签: php email smtp phpmailer outgoing-mail

以联系方式,它在localhost中正常工作。虽然托管它不起作用。显示错误

**"SMTP -> ERROR: Failed to connect to server: Connection timed out (110) The following From address failed: xxxxx@gmail.com ERROR"** 

我附上了contact_submit.php代码表格

    include_once('class.phpmailer.php');    

   $mail->IsSMTP(); // 
    $mail->Host       = "smtp.gmail.com"; 
    $mail->SMTPDebug  = 1;                    
    $mail->SMTPAuth   = true;                 
    $mail->Host       = "smtp.gmail.com"; 
    $mail->Port       = 587;                    
    $mail->Username   = "xxxx@gmail.com"; 
    $mail->Password   = "xxxx@123";        
    $mail->SMTPSecure = "tls";
    $mail->SetFrom($email, $name);

    $mail->AddReplyTo($email,$name);

    $mail->Subject    = "Contact - xxx";

    $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; 

    $mail->MsgHTML($body);
    $mail->AddAddress("xxx@gmail.com","xxx");


    if(!$mail->Send()) 
    {
        echo $mail;
      echo "Mailer Error: " . $mail->ErrorInfo;
    } 
    else
        {
      echo '<META HTTP-EQUIV="Refresh" Content="0; URL=contact.php?id='.$id.'&send=success">';
      exit; 
    }

我使用的是phpmailer 5.2.1。

我联系了托管方,但我没有得到实际回复。

3 个答案:

答案 0 :(得分:2)

我相信您必须在端口465上连接到smtp.gmail.com,而不是端口587.此外,还需要SSL。所以,你应该:

$mail->Host       = "smtp.gmail.com";      
$mail->Port       = 465;                   
$mail->SMTPSecure = "ssl";                 

答案 1 :(得分:1)

我遇到了类似的问题,邮件是从我的本地服务器正确发送的,但不是我在互联网上发送的邮件。结果我的主机(Bluehost)阻止了端口465上的传出连接。

我找到了一个很棒的how-to,它为我修复了它:

  1. 在您的cPanel中&gt;邮件,找到MX(MX条目)部分,然后选择“远程邮件交换器”。
  2. 在cPanel电子邮件帐户部分中,创建相应的电子邮件地址(不要跳过此内容)
  3. 不要使用&#34; smtp.live.com&#34;作为你的smtp主机。使用您的Shared Linux Hosting smtp的smtp主机。我不知道你会如何得到你的。我的是boxXXXX.bluehost.com。
  4. 将您的用户名和密码设置为与您在cPanel中设置的电子邮件帐户相同。

答案 2 :(得分:1)

您可以通过以下代码添加代码来增加超时时间:

set_time_limit(3600);

然后指定$mail对象的超时:

$mail->Timeout = 3600;