【问题标题】:SMTP -> ERROR: Failed to connect to server: Connection timed out (110) The following From address failed: xxxxx@gmail.com ERRORSMTP -> 错误:无法连接到服务器:连接超时(110)以下发件人地址失败:xxxxx@gmail.com 错误
【发布时间】:2014-04-03 08:49:14
【问题描述】:

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

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

【问题讨论】:

  • 嘿,我遇到了同样的问题。你解决了这个问题吗?我认为问题来自托管方。

标签: php email smtp phpmailer outgoing-mail


【解决方案1】:

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

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

【讨论】:

  • 如果我想在托管方面检查什么? Bcoz 我在另一个网站上试过这个相同的代码.. 它正在工作..
  • 是的,您的主机可能会阻止一个或多个用于经过身份验证的 SMTP 端口(例如 25、587、465)上的传出连接。一些主机(例如 Godaddy)因此而臭名昭著。
  • 我的主机 (Bluehost) 阻止了这个,但我找到了解决方案。发布在下面。
【解决方案2】:

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

set_time_limit(3600);

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

$mail->Timeout = 3600;       

【讨论】:

  • 欢迎来到 Stack Overflow!发布时,检查问题日期,它可能是旧的并且与发布者无关。如果是这种情况,请确保您的答案可以帮助以后遇到相同问题的其他人。由于您的答案仅针对代码的单个元素,因此您应该只在答案中写下相关行。
【解决方案3】:

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

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

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

【讨论】:

  • 正是我想要的!谢谢!
  • 嗨,这有什么更新吗?我认为 bluehost 现在没有这个?
  • 没有更新。由于这样的问题,我从 Bluehost 切换到 Siteground。我付出更多,但我得到更多功能。
猜你喜欢
  • 1970-01-01
  • 2014-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
相关资源
最近更新 更多