2010-10-16 155 views
36

estoy usando PHPMailer en una secuencia de comandos simple para Enviar correo electrónico de Gmail a través, y me estoy poniendo un "error desconocido" (Al menos para mí!):"Error SMTP: No se pudo autenticar" en PHPMailer

SMTP Error: Could not authenticate. Error: SMTP Error: Could not authenticate.

SMTP server error: 5.7.1 Username and Password not accepted. Learn more at 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).

Este es el script 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 contraseña son correctos, y yo trataba de Thunderbird, sin ningún problema. También he usado Autenticación SSL y Puerto 465, obteniendo el mismo error.

+0

Esto es extraño, ya que el error indica claramente un error de nombre de usuario/contraseña en lugar de un problema de protocolo. ¿No tienes caracteres especiales en tu contraseña que puedan ser transferidos erróneamente? –

Respuesta

17

Tal vez puedas probar:

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

he comprobado y su trabajo a la perfección y sin ningún otro cambio

+0

@Astantler puede marcar su respuesta como aceptada usando el símbolo de la marca de verificación a la izquierda. –

3

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

7

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. E.g $mail->Password = " por$ch3"; es válido pero no funcionará con el código anterior. La solución debe 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 usted tiene una contraseña con caracteres especiales

+0

Puedes usar comillas simples. Solo la única comilla debería ser escapada. –

17

this is GMail issue

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

  1. Abra el navegador web y acceder a 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 a sus mensajes en su cliente de correo electrónico nuevamente.
  3. Si aún tiene problemas, visite http://www.google.com/accounts/DisplayUnlockCaptcha e inicie sesión con su nombre de usuario y contraseña de Gmail. Si es necesario, ingrese las letras en la imagen distorsionada.
  4. Haga clic en Continuar.
  5. Reinicia tu cliente de correo e intenta acceder nuevamente a los mensajes en tu cliente de correo electrónico.

SMTP Error: Could not authenticate

Gmail issue

+0

puede requerir que espere unos minutos, no funcionó al instante para mí ... pulse continuar dos veces. – enko

4

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

+0

Espero que todavía no use esa contraseña porque 1. Acaba de suministrarla a Internet 2. No es en absoluto segura. https://dl.dropboxusercontent.com/u/209/zxcvbn/test/index.html –

+0

para obtener más aclaraciones, era solo un ejemplo –

2

Si aún tiene un error al enviar el 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 funcionando.

0

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)

41

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

enter image description here

+2

Lamento la respuesta tardía. Para aquellos de ustedes que no pueden ver el cuadro de diálogo Permitir menos aplicaciones seguras. 1. Vaya a su cuenta 2. Aplicaciones y sitios conectados (pestaña de inicio de sesión y seguridad) 3. Debería ver tres pestañas en "Aplicaciones y sitios conectados". Pero si solo ve - 'Aplicaciones conectadas a su cuenta' y 'Contraseñas guardadas'. 4. En la barra lateral, haga clic en "Iniciar sesión en Google". Desactive la verificación en dos pasos. 5. Ahora verá las aplicaciones Permitir menos seguridad. Activar si. – Beekeeper

+0

No he visto la sección Permitir aplicaciones menos seguras, pero sí la Contraseña de la aplicación. Más información https://support.google.com/accounts/answer/185833?hl=es – guido

+0

Muchas gracias. Esto funcionó en mi caso. –

0

Fue el tema de SELinux. Acabo de actualizar la parte que se proporciona a continuación en el archivo/etc/selinux/config SELINUX=permissive (antes se aplicaba SELINUX =). luego simplemente reinicie el sistema dando reinicie 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] 
2

que tenían el mismo problema e hicieron todos los consejos que incluyen configuración de Gmail (por ejemplo, acceso a aplicaciones menos seguro) 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.

2

[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. crear una nueva contraseña para la cuenta de Gmail que desea utilizar
  2. Habilitar aplicaciones menos seguras en Google Security settings
  3. Uso del Display Unlock Captcha page para darle a su aplicación o sitio web permiso para acceder a 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
+0

No necesita habilitar Reenvío, POP o IMAP en Gmail para que esto funcione. – Red

0

SMTP Error: no se pudo autenticar que tenía 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 tengan acceso a mi cuenta de gmail. Para que funcione, tuve que ir a myaccount.google.com ->Sign-in & security ->Apps with account access, y convertir Allow less secure apps en ON (cerca de la parte inferior de la página).
  • En este paso, cuando intenté 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.
  • Intente registrarse nuevamente. Debería funcionar ahora.
Cuestiones relacionadas