PHPMailer no funciona: no se pudo enviar el mensaje

Intento crear un formulario de contacto en mi sitio web utilizando PHPMailer. Estoy teniendo problemas para configurarlo. Estoy tratando de usar G-mail como mi host smtp. Me preguntaba si alguien puede ayudar a solucionar este problema.

Este es mi código de correo:

IsSMTP(); $mail->SMTPAuth = true; // turn on SMTP authentication $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail $mail->Host = 'smtp.gmail.com'; $mail->Port = 467; $mail->Username = "validmail@gmail.com"; // SMTP username $mail->Password = "workingpassword"; // SMTP password $mail->From = "validmail@gmail.com"; $mail->FromName = "Mailer"; $mail->AddAddress("josh@example.net", "Josh Adams"); $mail->AddAddress("ellen@example.com"); // name is optional $mail->AddReplyTo("info@example.com", "Information"); $mail->WordWrap = 50; // set word wrap to 50 characters // $mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments // $mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name $mail->IsHTML(true); // set email format to HTML $mail->Subject = "Here is the subject"; $mail->Body = "This is the HTML message body in bold!"; $mail->AltBody = "This is the body in plain text for non-HTML mail clients"; if(!$mail->Send()) { echo "Message could not be sent. 

"; echo "Mailer Error: " . $mail->ErrorInfo; exit; } echo "Message has been sent"; ?>

El mensaje de error:

 Message could not be sent. Mailer Error: The following From address failed: validmail@gmail.com 

¿Has mirado e intentado la información de esta Q?

PHPMailer: Error SMTP: no se pudo conectar al host SMTP

En particular, ¿esto proporciona alguna información adicional?

 $mail->SMTPDebug = 1; 

smtp.gmail.com requiere que use SSL y el puerto 587 o 465.

Consulte su página de configuración: http://support.google.com/mail/bin/answer.py?hl=es&answer=13287

¿Estás ejecutando PHP en Windows? Entonces esto podría ayudar:

http://www.devcha.com/2010/01/php-fsockopen-unable-to-connect-ssl.html

Obtuve el mismo error y el problema fue que estaba intentando enviar un correo electrónico desde la cuenta “boy333 @ in **” pretendiendo ser “girl333 @ in **”. Acabo de cambiar

 $mail->From = 'girl333@in**' 

al nombre de usuario en realidad me estaba conectando. Entonces cambié a:

 $mail->From = 'boy333@in**' 

La idea es que estos dos campos tengan los mismos nombres de usuario.

 $mail->Username = "boy333"; $mail->From = 'boy333@in**'; 
 IsSMTP(); // telling the class to use SMTP $body .= $nameField; try { //$mail->Host = "mail.gmail.com"; // SMTP server $mail->SMTPDebug = 2; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = "ssl"; // sets the prefix to the servier $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server $mail->Port = 465; // set the SMTP port for the GMAIL server $mail->SMTPKeepAlive = true; $mail->Mailer = "smtp"; $mail->Username = "xxxxx@gmail.com"; // GMAIL username $mail->Password = "********"; // GMAIL password $mail->AddAddress('sendto@gmail.com', 'abc'); $mail->SetFrom('xxxxxx@gmail.com', 'def'); $mail->Subject = 'PHPMailer Test Subject via mail(), advanced'; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically $mail->MsgHTML($body); $mail->Send(); echo "Message Sent OK\n"; header("location: ../test.html"); } catch (phpmailerException $e) { echo $e->errorMessage(); //Pretty error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); //Boring error messages from anything else! } ?> 

Vaya a la configuración de google y habilite las aplicaciones “menos seguras”. Funcionó para mí

 ping smtp.gmail.com 

Por alguna razón, google redirige las solicitudes SMTP a gmail-smtp-msa.l.google.com

 PING gmail-smtp-msa.l.google.com (74.125.133.108): 56 data bytes 64 bytes from 74.125.133.108: icmp_seq=0 ttl=43 time=72.636 ms 64 bytes from 74.125.133.108: icmp_seq=1 ttl=43 time=68.841 ms 64 bytes from 74.125.133.108: icmp_seq=2 ttl=43 time=68.500 ms 

Por lo tanto, debe poner el destino final en su configuración, ya que PHPMailer no sigue las redirecciones. También puede tratar de enviar correos electrónicos sin SMTPSecure manteniendo ese campo en blanco.

 $mail->Host = 'gmail-smtp-msa.l.google.com'; $mail->SMTPAuth = true; $mail->Username = 'email'; $mail->Password = 'password'; $mail->SMTPSecure = ''; $mail->Port = 25; 

Si su correo electrónico en gsuite compruebe dos pasos: https://support.google.com/a/answer/6260879?hl=es https://accounts.google.com/DisplayUnlockCaptcha

Configuración de correo php; PHPMailer versión 5.2.22 Ver class.phpmailer.php,

  var $Host = 'smtp.gmail.com'; var $Port = 465; var $Helo ='domain.net'; public $SMTPSecure = 'ssl'; public $SMTPAutoTLS = true; public $SMTPAuth = true; public $SMTPOptions = array(); public $Username = 'gmail-username';//or domain credentials on google mail public $Password = 'gmail-password'; public $Timeout = 10; public $SMTPDebug = true; 

correo electrónico enviar php

 IsSMTP(); $mail->CharSet="SET NAMES UTF8"; $mail->SMTPDebug = 0; $mail->CharSet="utf8"; $mail->Debugoutput = 'html'; $mail->host = "smtp.gmail.com"; $mail->port = 465; $mail->smtpauth = true; $mail->smtpsecure = 'ssl'; $mail->username = "gmail-username"; //or domain credentials on google mail $mail->password = "gmail-password"; $mail->SetFrom('from-email', 'from-name'); $mail->AddAddress('to-address', 'to-address'); $mail->Body = 'your-text'; //emailbody if(!$mail->Send()) { mysql_close(); echo ""; } else { mysql_close(); echo ""; } ?> 

Esto es trabajo para mi Espero eso ayude.