PHPMailer臭名昭着的SMTP错误:无法连接到服务器:连接超时(110)SMTP连接()失败

时间:2014-02-11 04:50:24

标签: php smtp phpmailer google-apps

我正在尝试让PHPMailer使用Google Apps SMTP服务器。我试过了:

  1. 在php.ini中取消注释openssl
  2. 通过端口465(成功)Telneting Google的服务器
  3. 通过端口465 Telnet我的网络服务器(成功)
  4. 从我的服务器(成功)远程登录Google的服务器
  5. 检查DNS SPF / MX记录(并清理为IPv4)
  6. tls on port 587
  7. webhost确认他们允许出站SMTP流量
  8. google captcha的解锁技巧
  9. 阅读StackOverflow上可以找到的所有内容(上面提到的解决方案)
  10. 有人可以为超时连接提供解决方案吗?

    这是我的代码:

    require_once ( 'class.phpmailer.php' ); // Add the path as appropriate
    $Mail = new PHPMailer();
    $Mail->IsSMTP(); // Use SMTP
    $Mail->Host        = "smtp.gmail.com"; // Sets SMTP server
    $Mail->SMTPDebug   = 1; // 2 to enable SMTP debug information
    $Mail->SMTPAuth    = TRUE; // enable SMTP authentication
    $Mail->SMTPSecure  = "ssl"; //Secure conection
    $Mail->Port        = 465; // set the SMTP port
    $Mail->Username    = 'account@googleappsaddress.com'; // SMTP account username
    $Mail->Password    = 'mypassword'; // SMTP account password
    $Mail->Priority    = 1; // Highest priority - Email priority (1 = High, 3 = Normal, 5 = low)
    $Mail->CharSet     = 'UTF-8';
    $Mail->Encoding    = '8bit';
    $Mail->Subject     = 'Test Email Using Gmail';
    $Mail->ContentType = 'text/html; charset=utf-8\r\n';
    $Mail->From        = 'myemail@gmail.com';
    $Mail->FromName    = 'GMail Test';
    $Mail->WordWrap    = 900; // RFC 2822 Compliant for Max 998 characters per line
    
    $Mail->AddAddress( $to ); // To:
    $Mail->isHTML( TRUE );
    $Mail->Body    = $body;
    $Mail->AltBody = $MessageTEXT;
    $Mail->Send();
    $Mail->SmtpClose();
    
    if(!$Mail->Send()) {
        $error = 'Mail error: '.$Mail->ErrorInfo; 
        echo($error);
        return false;
    } else {
        $error = 'Message sent!';
        return true;
    }
    

1 个答案:

答案 0 :(得分:0)

事实证明我是巧合的牺牲品。当我ssh'ed到我的服务器并telnet到Gmail,它是开放的 - 但是,由于openssl没有被注释,我怀疑这是它最初失败的原因。

然而,在尝试使其正常工作时,主机防火墙将Gmail列入黑名单。他们目前正在调查原因,但简短的回答是它是白名单并且正在运作。