not - smtp error password command failed 535 incorrect authentication data phpmailer
SERVIDOR PHPMAILER-> ERROR SMTP: el comando de contraseña falló SMTP connect() falló (2)
Estoy tratando de enviar un correo electrónico cuando alguien ingresa en una página. Es para la confirmación del pago de PayPal. Pagas algo y en la página donde ves lo que hiciste, un correo electrónico se envía automáticamente.
El código es el siguiente:
function send_email($from, $to, $subject, $nombre,$apellido) {
$pagoReal = $_SESSION["Payment_Amount"];
$monedaReal = $_SESSION["currencyCodeType"];
$estado = $_SESSION[''estado''];
$id = $_SESSION[''idHash''];
$mail = new PHPMailer();
$mail->SMTPDebug=3;
$mail->IsSMTP();
$mail->Host = ''localhost'';
$mail->CharSet = "UTF-8";
$mail->From = $from;
$mail->FromName = ''Notificación de pago via Paypal'';
$mail->addAddress($to);
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->SMTPAuth = true;
$contenido = "<html><body>
<p>Han realizado un nuevo ingreso via Paypal</p><br>
Nombre del cliente: $nombre $apellido<br>
Cantidad que pagó: $pagoReal $monedaReal <br>
Estado de la reserva:$estado <br>
Enlace a la factura : href=''xxxxx/$id<br>
</body></html>";
$mail->Subject = $subject;
$mail->Body = $contenido;
[''tmp_name''],$_FILES[''cv_contacto''][''name'']);
if (!$mail->Send()) {
echo ''Error enviando mensaje.'';
echo ''Mailer Error: '' . $mail->ErrorInfo;
return "Mailer Error: " . $mail->ErrorInfo;
} else {
return 1;
}
}
entonces llamo a la función
send_email(''[email protected]'', ''[email protected]'',''Payment of ''. $firstName." ".$lastName,$firstName,$lastName);
Y obtengo este error
Error: autenticación fallida: error genérico 2016-07-11 14:20:51 SMTP ERROR: comando de contraseña fallido: 535 5.7.8 Error: autenticación fallida: error genérico 2016-07-11 14:20:51 CLIENTE -> SERVIDOR: QUIT 2016-07-11 14:20:51 SERVER -> CLIENTE: 221 2.0.0 Adiós 2016-07-11 14:20:51 Conexión: cerrada 2016-07-11 14:20:51 SMTP connect () failed. Error enviando mensaje.Mailer Error: SMTP connect () falló.
Alguna idea de que puedo hacer?
¡Gracias!
Sigue estos pasos.
Usar una contraseña de la aplicación: si usa la verificación en dos pasos, intente iniciar sesión con una contraseña de la aplicación.
Permitir aplicaciones menos seguras: si no usa la verificación en dos pasos, es posible que necesite permitir que aplicaciones menos seguras accedan a su cuenta.
Si recientemente cambió su contraseña de Gmail, es posible que deba volver a ingresar la información de su cuenta de Gmail o repetir completamente la configuración de su cuenta de Gmail en su otro cliente de correo electrónico. Si los consejos anteriores no ayudaron, visite https://www.google.com/accounts/DisplayUnlockCaptcha y siga los pasos en la página. Si usa Gmail a través de su trabajo, escuela u otra organización, visite https://www.google.com/a/tudominio.com/UnlockCaptcha y reemplace yourdomain.com con su nombre de dominio.
He resuelto este problema:
Por favor, siga los pasos a continuación:
1) Primero descarga los últimos archivos de PHPmailer. https://github.com/PHPMailer/PHPMailer
a) Check its there at all (on terminal )
ping smtp.gmail.com
This should give you something like this:
Trying 173.194.67.109...
Connected to gmail-smtp-msa.l.google.com.
Escape character is ''^]''.
220 mx.google.com ESMTP ex2sm16805587wjd.30 - gsmtp
b) openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:587
You should expect a response like this:
Start Time: 1460541074
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
250 SMTPUTF8
Notice that the verify return code is 0, which indicates successful verification.
refer link : https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
2) Google ahora no acepta el inicio de sesión de aplicaciones menos seguras.
Abrir enlace: https://myaccount.google.com/security
Firstly login your gmail account.
a)Scroll to the bottom and turn ON "Allow less secure apps: ON".
b)Now when you add the SMTP details to "Send as" google will accept them.
c)You need to do this for the email ID you are adding in your Send as section.
3) Código de script:
require ''PHPMailerAutoload.php'';
$mail = new PHPMailer();
$mail->isSMTP(); // telling the class to use SMTP
$mail->SMTPDebug = 2;
// 0 = no output, 1 = errors and messages, 2 = messages only.
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "tls"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets Gmail as the SMTP server
$mail->Port = 587; // set the SMTP port for the GMAIL
$mail->Username = "[email protected]"; // Gmail username
$mail->Password = "********"; // Gmail password
$mail->CharSet = ''windows-1250'';
$mail->SetFrom (''[email protected]''); // send to mail
$mail->AddBCC ( ''[email protected]''); // send to mail
$mail->Subject = $subject;
$mail->ContentType = ''text/plain'';
$mail->isHTML(false);
$body_of_your_email ="Hello Pradeep";
$mail->Body = $body_of_your_email;
// you may also use $mail->Body = file_get_contents(''your_mail_template.html'');
$mail->AddAddress (''[email protected]'', ''Recipients Name'');
// you may also use this format $mail->AddAddress ($recipient);
if(!$mail->Send())
{
echo $error_message = "Mailer Error: " . $mail->ErrorInfo;
} else
{
echo $error_message = "Successfully sent!";
}
Espero que funcione bien.
Gracias