mail library enviar correo php phpmailer

library - phpmailer gmail



"Error SMTP: no se pudo autenticar" en PHPMailer (14)

esto es un problema de GMail

lea esta Ayuda de Google ( https://support.google.com/mail/answer/14257?p=client_login&rd=1 )

  1. Abra su navegador web e inicie sesión en Gmail en http://mail.google.com/mail . Si ve una solicitud de verificación de palabras, escriba las letras en la imagen distorsionada y termine de iniciar sesión.
  2. Cierre su navegador e intente acceder nuevamente a sus mensajes en su cliente de correo electrónico.
  3. Si sigues teniendo problemas, visita http://www.google.com/accounts/DisplayUnlockCaptcha e inicia sesión con tu nombre de usuario y contraseña de Gmail. Si es necesario, ingrese las letras en la imagen distorsionada.
  4. Haga clic en Continuar
  5. Reinicie su cliente de correo e intente acceder nuevamente a los mensajes en su cliente de correo electrónico.

Estoy usando PHPMailer en un script simple para enviar correos electrónicos a través de Gmail, y recibo un "Error desconocido" (¡Al menos para mí!):

Error de SMTP: no se pudo autenticar. Error: Error de SMTP: no se pudo autenticar.

Error del servidor SMTP: 5.7.1 Nombre de usuario y contraseña no aceptados. Obtenga más información en 535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 p38sm2467302ybk.16

He leído sobre Configurar OpenSSL para conexiones SSL / TLS, y lo hice. Apache y PHP están configurados correctamente (con la extensión OpenSSL ejecutándose en PHP y mod_ssl ejecutándose en Apache 2.2.16).

Esta es la secuencia de comandos de PHP:

<?php require_once ("PHPMailer/class.phpmailer.php"); $Correo = new PHPMailer(); $Correo->IsSMTP(); $Correo->SMTPAuth = true; $Correo->SMTPSecure = "tls"; $Correo->Host = "smtp.gmail.com"; $Correo->Port = 587; $Correo->UserName = "[email protected]"; $Correo->Password = "gmailpassword"; $Correo->SetFrom(''[email protected]'',''De Yo''); $Correo->FromName = "From"; $Correo->AddAddress("[email protected]"); $Correo->Subject = "Prueba con PHPMailer"; $Correo->Body = "<H3>Bienvenido! Esto Funciona!</H3>"; $Correo->IsHTML (true); if (!$Correo->Send()) { echo "Error: $Correo->ErrorInfo"; } else { echo "Message Sent!"; } ?>

El nombre de usuario y la contraseña están bien, y lo intenté en Thunderbird, sin ningún problema. También utilicé Autenticación SSL y Puerto 465, obteniendo el mismo error.


Encontré este problema. Para que funcione, tuve que ir a myaccount.google.com -> "Iniciar sesión y seguridad" -> "Aplicaciones con acceso a la cuenta", y poner "Permitir aplicaciones menos seguras" a "ENCENDIDO" (cerca de la parte inferior de la página).


Fue el problema de Selinux. Acabo de actualizar la parte dada a continuación en el archivo / etc / selinux / config SELINUX=permissive (antes era SELINUX = imponer). entonces simplemente reinicie el sistema reiniciando. Ahora el correo funciona sin problemas. Configuración

From Email Address : [[email protected]] From Name : [your domain name] SMTP Host : smtp.gmail.com Type of Encryption : SSL SMTP Port : 465 SMTP Authentication : YES Username : [your mail id] Password : [your password]


La otra publicación es correcta para resolver el problema, pero no aborda cómo hacerlo si está activada la verificación en dos pasos. La opción de permitir las aplicaciones menos seguras NO está disponible entonces. Aquí hay una respuesta a cómo hacerlo:

a. Go to the URL of `https://myaccount.google.com/` and click `Sing-in and security` b. Click on the app password.

You will reach a page like this,

c. Create name of your app and generate a password for the respective app. d. Use that password acquired here inside the app.

Esto debería resolver el problema.


No hay problema con tu código.

Siga a continuación dos simples pasos para enviar correos electrónicos desde phpmailer.

  • Tienes que deshabilitar la configuración de verificación en dos pasos para la cuenta de google si has habilitado.

  • Encender permite el acceso a la aplicación menos segura.


Para mí, tenía un carácter especial en mi campo de contraseña, y lo puse como $ mail-> Password = "por $ ch3" que funciona para el servidor smpt de Gmail pero no para el otro; así que cambié las comillas dobles a las comillas simples y funciona para mí. $ mail-> Contraseña = ''por $ ch3'';


Pruebe esto en su lugar:

$ Correo-> Nombre de usuario = "[email protected]";

Lo probé y funciona perfectamente sin ningún otro cambio


Recibí el mismo error y en mi caso era la contraseña. Mi contraseña tiene caracteres especiales y si proporciona la contraseña sin escapar de los caracteres especiales, el error continuará apareciendo. Por ejemplo, $mail->Password = " por$ch3"; es válido pero no funcionará utilizando el código anterior. La solución debería ser la siguiente: $mail->Password = "por/$ch3"; Tenga en cuenta la barra invertida que coloqué antes del carácter dólar dentro de mi contraseña. Eso debería funcionar si tienes una contraseña usando caracteres especiales


Recibí este error debido a los signos de porcentaje en la contraseña.


Si aún tiene un error al enviar un correo electrónico, con el mismo mensaje de error. Prueba esto:

$mail->SMTPSecure = ''tls''; $mail->Host = ''smtp.gmail.com'';

justo antes de la línea:

$send = $mail->Send();

o en otro sentido, antes de llamar a la función Enviar ().

Probado y trabajando.


Tuve el mismo problema con la autenticación. La solución fue configurar la verificación en dos pasos y crear una contraseña específica para la aplicación para el dispositivo (los mensajes de error para bloquear el dispositivo aparecerán en la configuración de tu cuenta -> "Notificaciones y alertas" si tu problema es el mismo que el mío)


Tuve el mismo problema e hice todos los consejos, incluida la configuración de Gmail (por ejemplo, acceso a aplicaciones menos seguras) sin suerte. Pero finalmente, cuando cambié la contraseña a algo diferente, ¡por alguna razón funcionó! FYI, la contraseña inicial no tenía ningún carácter especial.


[SOLUCIONADO]. Experimenté el mismo error al configurar el complemento WP-Mail-SMTP en Wordpress.

El problema persistiría aunque haya "comprobado tres veces" la configuración y las credenciales de inicio de sesión, y pueda iniciar sesión manualmente usando un navegador.

Hay una lista de pasos que puede seguir para solucionar esto.

  1. Crea una nueva contraseña para la cuenta de Gmail que quieras usar
  2. Habilitar aplicaciones menos seguras en la configuración de seguridad de Google
  3. Use la http://www.google.com/accounts/DisplayUnlockCaptcha para dar permiso a su aplicación o sitio web para iniciar sesión en Gmail. Haga clic en Continue o siga las instrucciones.
  4. Inicie sesión con la aplicación o el sitio web. La configuración smtp que funciona para mí es 1) Host SMTP: smtp.gmail.com 2) Puerto SMTP: 587 3) Cifrado: TLS 4) Autenticación: autenticación SMTP 5) Nombre de usuario: [email protected] 6) Contraseña: examplesecret

Error de SMTP: no se pudo autenticar , tuve el mismo problema. Los siguientes pasos de solución de problemas me ayudaron.

  • Desactivé la autenticación de dos factores en mi cuenta de gmail.
  • Permití que las aplicaciones menos seguras accedieran a mi cuenta de gmail. Para que funcione, tuve que ir a myaccount.google.com -> Sign-in & security -> Apps with account access , y activar Allow less secure apps a ON (cerca de la parte inferior de la página).
  • En este paso, cuando traté de registrar un usuario, obtendría el mismo error. Google me envió un mensaje de advertencia de que alguien tiene mi contraseña y el inicio de sesión estaba bloqueado.
  • Gmail le proporcionará opciones. Haga clic en si la actividad era suya o no. Haga clic en la opción de que la actividad era suya.
  • Intenta registrarte de nuevo. Debería funcionar ahora.