miércoles, 29 de noviembre de 2017

PHPMailer ERROR:Password command failed: 534-5.7.14 Enviando con Gmail

En una de mis apps web. Estoy usando PHPMailer para enviar correos electrónicos desde PHP. Todo funciona correctamente usando una cuenta de correo propia de mi dominio, el problema está al configurar la cuenta de gmail como servidor SMTP.

Los datos que facilita GMAIL se pueden consultar aquí
  • Opciones: puerto 25, 465 o 587.
  • Protocolos SSL (capa de conexión segura) o TLS (seguridad en la capa de transporte).
  • Se requiere una o varias direcciones IP estáticas.
  • Puerto 465 (se requiere SSL).
  • Puerto 587 (se requiere TLS).
  • Se admiten IP dinámicas.
  • Puerto 25.
  • No se requiere TLS.
  • Se admiten IP dinámicas. 
  • Solo se pueden enviar correos a los usuarios de Gmail o G Suite.

Yo estoy usando: puerto: 587, seguridad: tls, host: smtp.gmail.com, y los datos de usuario y clave de mi cuenta.

Para determinar el error. Habilito a '1' la propiedad SMTPDebug que proporciona PHPMailer y al intentar enviar el correo devuelve el siguiente código:

2017-11-29 08:51:20 CLIENT -> SERVER: EHLO demo.albaibs.net
2017-11-29 08:51:20 CLIENT -> SERVER: STARTTLS
2017-11-29 08:51:20 CLIENT -> SERVER: EHLO demo.albaibs.net
2017-11-29 08:51:20 CLIENT -> SERVER: AUTH LOGIN
2017-11-29 08:51:20 CLIENT -> SERVER: YWxiYWlic21haWxAZ21haWwuY29t
2017-11-29 08:51:20 CLIENT -> SERVER: TTFAbGJpYnM=
2017-11-29 08:51:20 SMTP ERROR: Password command failed: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbu6
                                      534-5.7.14 DdmKieVjzE-PRslaYBawzloy4sHOXyQVgeHU5Cj8nB3yYNtzhW7sGt1Wv8b_iHZZC27xXS
                                      534-5.7.14 0TUoPfx_4vtRrXdeRJkEphkUkvnNJ0h7kx9hzG_MSWhNBhHCSdR07RxPJPV-BV6YNaM0D9
                                      534-5.7.14 -S-bxFWPDgmfY0njjPfG0OKJOv0fcdaI8L1A3u3OaJNp983ieNk6prM_5biMHNXh_MflmB
                                      534-5.7.14 zPI1mWGI3BNGw1AnYsLew1YP6IM2o> Please log in via your web browser and
                                      534-5.7.14 then try again.
                                      534-5.7.14  Learn more at
                                      534 5.7.14  https://support.google.com/mail/answer/78754 e131sm1018193wmg.15 - gsmtp
2017-11-29 08:51:20 SMTP Error: Could not authenticate.
2017-11-29 08:51:20 CLIENT -> SERVER: QUIT
2017-11-29 08:51:20 SMTP connect() failed. 

La solución la encontré en el artículo: https://stackoverflow.com/questions/21937586/phpmailer-smtp-error-password-command-failed-when-send-mail-from-my-server aportada por el usuario: https://stackoverflow.com/users/3759368/callmebob

1.- La solución pasa por iniciar sesión en el navegador con la cuenta que deseas enviar como SMTP

Ya con la cuenta iniciada....

2.- Habilitar aplicaciones al envío de emails desde aquí: https://www.google.com/settings/u/1/security/lesssecureapps
3.- Entra en éste enlace y aceptar cualquier tipo de actividad sospechosa demostrando a google que todo está en orden y sin problemas de seguridad.
4.- Entra en éste enlace y acepta este último paso de seguridad

A mí me funcionó correctamente. Suerte!

No hay comentarios:

Publicar un comentario

Jesús Moreno - Ingeniero Ténico Informático - consultor Informático

Hola, soy Jesús Moreno Ingeniero Técnico Informático en sistemas por la US y propietario de éste blog. Mi trabajo en los ultimos años se ...