1

在联系表格中,它在 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。

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

4

3 回答 3

3

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

$mail->Host       = "smtp.gmail.com";      
$mail->Port       = 465;                   
$mail->SMTPSecure = "ssl";                 
于 2014-04-03T13:42:24.500 回答
1

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

我找到了一个很好的方法来为我修复它:

  1. 在您的 cPanel > 邮件中,找到 MX(MX 条目)部分,然后选择“远程邮件交换器”。
  2. 在 cPanel 电子邮件帐户部分,创建适当的电子邮件地址(不要跳过此步骤)
  3. 不要使用“smtp.live.com”作为您的 smtp 主机。使用共享 Linux 主机 smtp 的 smtp 主机。我不知道你将如何得到你的。我的是 boxXXXX.bluehost.com。
  4. 将您的用户名和密码设置为与您刚刚在 cPanel 中设置的电子邮件帐户相同。
于 2014-07-05T04:27:47.123 回答
1

您可以通过在代码前面添加以下内容来增加超时:

set_time_limit(3600);

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

$mail->Timeout = 3600;       
于 2014-09-15T03:41:52.800 回答