带有Gmail SMTP设置的PHPMailer

时间:2014-02-19 05:05:23

标签: smtp gmail phpmailer

我正在尝试使用我的Gmail帐户使用PHPMailer脚本创建联系表单。我已尝试$Mail->SMTPSecure = "ssl"; $Mail->Port = 465;$Mail->SMTPSecure = "tls"; $Mail->Port = 587;。我还是想出来:

SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (43443944) SMTP Error: Could not connect to SMTP host.

以下代码是我正在试用的内容。还有其他我可以尝试的,或者其他可能有解决方案的帖子吗?先感谢您。

    

$name = $_REQUEST['name'] ;
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;

$MessageTEXT = 'This is the alternate to HTML' ;

function SendMail( $ToEmail, $MessageHTML, $MessageTEXT ) {
  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   = 2; // 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    = 'thefloatingorange06@gmail.com'; // SMTP account username
  $Mail->Password    = 'password'; // 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        = 'jackiesylee@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    = '$name $email $message';
  $Mail->AltBody = $MessageTEXT;
  $Mail->Send();
  $Mail->SmtpClose();

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

$ToEmail = 'thefloatingorange06@gmail.com';
$ToName  = 'Jackie';

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

1 个答案:

答案 0 :(得分:0)

以下代码对我有用:

$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    = 'example1@gmail.com'; // SMTP account username
$mail->Password    = 'password'; // SMTP account password
$mail->Priority    = 1; // Highest priority - Email priority (1 = High, 3 = Normal, 5 = low)
$mail->Encoding    = '8bit';
$mail->Subject     = 'Test Email Using Gmail';
$mail->ContentType = 'text/html; charset=utf-8\r\n';
$mail->From        = 'example@dominio.com';
$mail->FromName    = 'GMail Test';
$mail->WordWrap = 50; // set word wrap to 50 characters
$mail->IsHTML(true);