PHPMailer / SwiftMailer发送电子邮件 - 无法与主机smtp.gmail.com建立连接

时间:2014-12-16 13:22:48

标签: smtp gmail phpmailer swiftmailer

我正在尝试通过PHP Mailer发送电子邮件(如果它不工作我也安装并尝试了Swift Mailer,并得到相同的结果)。

我可以使用localhost发送它们,但它总是发送垃圾邮件,这是我的头脑。所以我试图通过我的Gmail帐户通过SMTP发送它,希望这有助于验证电子邮件。

这是我的代码:

function SendMail( $ToEmail, $MessageHTML, $MessageTEXT ) {
  require_once ( '../phpmailer/PHPMailerAutoload.php' ); // Add the path as appropriate
  $Mail = new PHPMailer();
  $Mail->IsSMTP(); // Use SMTP
  $Mail->Host        = "smtp.gmail.com"; // Sets SMTP server
  $Mail->SMTPDebug   = 2; // 2 to enable SMTP debug information
  $Mail->SMTPAuth    = TRUE; // enable SMTP authentication
  $Mail->SMTPSecure  = "tls"; //Secure conection
  $Mail->Port        = 587; // set the SMTP port
  $Mail->Username    = 'b31tom@gmail.com'; // SMTP account username
  $Mail->Password    = 'workingpass'; // SMTP account password (IVE TRIED BOTH NORMAL AND APP PASSWORDS)
  $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        = 'b31tom@gmail.com';
  $Mail->FromName    = 'GMail Test';
  $Mail->WordWrap    = 900; // RFC 2822 Compliant for Max 998 characters per line

  $Mail->AddAddress( $ToEmail ); // To:
  $Mail->isHTML( TRUE );
  $Mail->Body    = "Test";
  $Mail->AltBody = "Test";
  $Mail->Send();
  $Mail->SmtpClose();

  if ( $Mail->IsError() ) { // ADDED - This error checking was missing
    return FALSE;
  }
  else {
    return TRUE;
  }
}

$ToEmail = 'b31tom@me.com';
$ToName  = 'Name';

$Send = SendMail( $ToEmail, $MessageHTML, $MessageTEXT );
if ( $Send ) {
  echo "<h2> Sent OK</h2>";
}
else {
  echo "<h2> ERROR</h2>";
}
die;

这会返回以下错误:

2014-12-16 13:17:14 SMTP ERROR: Failed to connect to server: Network is unreachable (101) 2014-12-16 13:17:14   SMTP connect() failed.
ERROR

我已与我的网络提供商联系以检查以下内容: OpenSSL已启用 fopen启用 端口465和587打开

我已经浏览了PHP Mailer和Swift Mailer的许多示例代码(它们都声称是工作代码!)并且都给出了相同的结果。通常,错误101无法连接到gmail服务器!

我目前在我的网络提供商处开设了一张支持票,让人们在那里查看,他们也看不到问题。

请帮助:(

2 个答案:

答案 0 :(得分:1)

就在这时,gmail smtp服务器似乎在今天早上发生了广泛的中断。我不知道代码:)但是正在寻找其他有问题的人。稍后重试。

答案 1 :(得分:0)

感谢您的帮助。我的Web提供程序在本地php.ini中启用了pfsockopen函数,它解决了这个问题。

我希望这有助于将来的任何人。