0

I am trying to create a contact form using the PHPMailer script with my Gmail account. I have tried both $Mail->SMTPSecure = "ssl"; with $Mail->Port = 465; and $Mail->SMTPSecure = "tls"; with $Mail->Port = 587;. I am still coming up with:

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.

The code below is what I am trialling. Is there anything else that I am able to try, or another post that may have a solution? Thank you in advance.

$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;
?>
user3314971
  • 1
  • 1
  • 1
  • 2
  • Do you want us to believe that you have actually read the error message? If so, where and how do you enable SSL? – tripleee Feb 19 '14 at 07:48
  • Yes, that was the error message that I'm coming up with when I put in `$Mail->Port = 465` and `$Mail->SMTPSecure = "ssl"`. I'm not sure of where and how you enable SSL, but if this is something I need to do, would you be able to please point me in the right direction? – user3314971 Feb 19 '14 at 21:43
  • Quick googling turned up http://stackoverflow.com/questions/1705856/socket-transport-ssl-in-php-not-enabled – tripleee Feb 19 '14 at 21:48

1 Answers1

0

The code below is working for me :

$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);