Error de Gmail: el servidor SMTP requiere una conexión segura o el cliente no fue autenticado. La respuesta del servidor fue: 5.5.1 Autenticación requerida

Estoy usando el siguiente código para enviar correos electrónicos. El código funciona correctamente en mi máquina local. Pero en el servidor de producción recibo el mensaje de error

var fromAddress = new MailAddress("mymailid@gmail.com"); var fromPassword = "xxxxxx"; var toAddress = new MailAddress("yourmailid@yourdoamain.com"); string subject = "subject"; string body = "body"; System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) smtp.Send(message); 

Y en mi cuenta de Gmail A / c recibí el siguiente correo electrónico después de ejecutar el código desde el servidor de producción

Hola ,

Recientemente, alguien usó su contraseña para intentar iniciar sesión en su cuenta de Google mymailid@gmail.com. Esta persona usaba una aplicación como un correo electrónico, un cliente o un dispositivo móvil.

Evitamos el bash de inicio de sesión en caso de que se trate de un secuestrador que intenta acceder a su cuenta. Revise los detalles del bash de inicio de sesión:

Viernes 3 de enero de 2014 13:56:08 en punto Dirección IP de UTC: xxx.xx.xx.xxx (abcd.net.) Ubicación: Philadelphia PA, Philadelphia, PA, EE. UU.

Si no reconoce este bash de inicio de sesión, es posible que alguien más intente acceder a su cuenta. Debe iniciar sesión en su cuenta y restablecer su contraseña de inmediato.

Restablecer la contraseña

Si fue usted y tiene problemas para acceder a su cuenta, complete los pasos de solución de problemas detallados en http://support.google.com/mail?p=client_login.

Atentamente, El equipo de Cuentas de Google

Por lo general, esto ocurre cuando intenta iniciar sesión desde diferentes husos horarios o desde la computadora de la dirección IP. Su servidor de producción y el ID de correo que ha utilizado ambos se encuentran en diferentes zonas horarias. Elija cualquiera de la única solución:

1) Inicie sesión en el servidor de producción a través del acceso remoto e inicie sesión en gmail una vez con sus credenciales. Solicitarán la confirmación, la confirmarán y cerrarán sesión.

O bien, 2) inicie sesión en Gmail en su computadora local, siga este enlace y seleccione revisar esta actividad y tomar las medidas adecuadas.

Cuando intenta enviar correo desde el código y encuentra el error “El servidor SMTP requiere una conexión segura o el cliente no fue autenticado. La respuesta del servidor fue: 5.5.1 Autenticación requerida”, de lo que podría ocurrir el error debido a los siguientes casos.

caso 1: cuando la contraseña es incorrecta

caso 2: cuando intenta iniciar sesión desde alguna aplicación

caso 3: cuando intenta iniciar sesión desde el dominio que no sea su zona horaria / dominio / computadora (este es el caso en la mayoría de los escenarios al enviar correo desde el código)

Hay una solución para cada

solución para el caso 1: ingrese la contraseña correcta.

solución 1 para el caso 2 : vaya a la configuración de seguridad en el siguiente enlace https://www.google.com/settings/security/lesssecureapps y habilite las aplicaciones menos seguras. Para que pueda iniciar sesión desde todas las aplicaciones.

solución 2 para el caso 2 : (consulte https://stackoverflow.com/a/9572958/52277 ) habilite la autenticación de dos factores (también conocida como verificación en dos pasos) y luego genere una contraseña específica de la aplicación. Use esa contraseña recién generada para autenticarse a través de SMTP.

solución 1 para el caso 3: (Esto podría ser útil) necesita revisar la actividad. pero revisar la actividad no será útil debido a los últimos estándares de seguridad, el enlace no será útil. Entonces prueba el siguiente caso.

solución 2 para el caso 3 : si ha alojado su código en algún lugar del servidor de producción y si tiene acceso al servidor de producción, tome la conexión de escritorio remoto al servidor de producción e intente iniciar sesión una vez desde el navegador del servidor de producción. Esto agregará excpetioon para iniciar sesión en google y se le permitirá iniciar sesión desde el código.

Pero, ¿qué sucede si no tiene acceso al servidor de producción? prueba la solución 3

solución 3 para el caso 3: debe habilitar el inicio de sesión desde otra zona horaria / ip para su cuenta de google.

Para hacer esto, siga el enlace https://g.co/allowaccess y permita el acceso haciendo clic en el botón Continuar.

Y eso es. Aqui tienes. Ahora podrá iniciar sesión desde cualquier computadora y por cualquier medio de aplicación en su cuenta de Google.

Es un problema de seguridad, Gmail por defecto impide el acceso a su cuenta de correo electrónico desde aplicaciones personalizadas. Puede configurarlo para aceptar el inicio de sesión desde su aplicación.

Después de iniciar sesión en su correo electrónico, HAGA CLIC AQUÍ

Esto lo llevará a la siguiente página

Página de aplicaciones menos seguras

Después de pasar un par de horas hoy probando cada solución aquí, todavía no pude superar este error exacto. He usado gmail muchas veces de esta manera, así que sabía que era algo tonto, pero nada de lo que hice resolvió el problema. Finalmente encontré la solución en mi caso, así que pensé en compartirla.

Primero, la mayoría de las respuestas anteriores también son necesarias, pero en mi caso, fue una simple cuestión de ordenar el código al crear la clase SmtpClient.

En este primer fragmento de código a continuación, observe dónde se encuentra la línea “Credenciales = creditos”. Esta implementación generará el error al que se hace referencia en esta pregunta, incluso si tiene todo lo demás configurado correctamente.

 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient { Host = Emailer.Host, Port = Emailer.Port, Credentials = creds, EnableSsl = Emailer.RequireSSL, UseDefaultCredentials = false, DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network } 

Sin embargo, si mueve la llamada del credencial al final, el correo electrónico se enviará sin error. No hice ningún cambio en el código que lo rodea … es decir, el nombre de usuario / contraseña, etc. Claramente, tanto EnableSSL, UseDefaultCredentials, como DeliveryMethod dependen de que las credenciales se establezcan primero … No probé todo para descubrir cuál fue.

 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient { Host = Emailer.Host, Port = Emailer.Port, EnableSsl = Emailer.RequireSSL, UseDefaultCredentials = false, DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network, Credentials = creds } 

Espero que esto ayude a salvar a alguien más de algunos dolores de cabeza en el futuro.

Hola, tuve el mismo problema

lo que hice para resolverlo es activar la aplicación menos segura. después de conectarme a mi cuenta de gmail Ingresé a este enlace: https://www.google.com/settings/security/lesssecureapps

Luego enciendo la aplicación segura y funcionó. se ha dicho también arriba

Simplemente siga el paso en el correo electrónico de google y habilite las aplicaciones menos seguras.

He enfrentado el mismo problema. Sucede cuando activa la verificación en 2 pasos (MFA). Simplemente desactive la verificación en 2 pasos y su problema debe ser resuelto.

A continuación está mi código. También tuve el mismo error, pero el problema fue que di mi contraseña incorrecta. El código siguiente funcionará perfectamente. Inténtalo

  MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress("fromaddress@gmail.com"); mail.To.Add("toaddress1@gmail.com"); mail.To.Add("toaddress2@gmail.com"); mail.Subject = "Password Recovery "; mail.Body += " "; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += "
User Name : HAi
Password : aaaaaaaaaa
"; mail.Body += ""; mail.Body += ""; mail.IsBodyHtml = true; SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential("sendfrommailaddress.com", "password"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail);

Puedes recomendarlo en mi blog

Tuve el mismo problema para una aplicación implementada en Microsoft Azure.

SmtpException: el servidor SMTP requiere una conexión segura o el cliente no fue autenticado. La respuesta del servidor fue: 5.5.1 Autenticación requerida.

Primero, aprobé todos los dispositivos desconocidos (algunas direcciones IP que se originan en Irlanda) en la página siguiente (iniciada como usuario de gmail): https://security.google.com/settings/u/1/security/secureaccount

Usé la siguiente configuración para el cliente:

 var client = new SmtpClient("smtp.gmail.com"); client.Port = 587; client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential("my_user_name@gmail.com", "my_password"); 

Comenzó a funcionar solo después de configurar la siguiente propiedad en el cliente smtp:

 client.TargetName = "STARTTLS/smtp.gmail.com"; 

Lo que funcionó para mí fue activar la opción para aplicaciones menos seguras (estoy usando VB.NET)

 Public Shared Sub enviaDB(ByRef body As String, ByRef file_location As String) Dim mail As New MailMessage() Dim SmtpServer As New SmtpClient("smtp.gmail.com") mail.From = New MailAddress("from@gmail.com") mail.[To].Add("to@gmail.com") mail.Subject = "subject" mail.Body = body Dim attachment As System.Net.Mail.Attachment attachment = New System.Net.Mail.Attachment(file_location) mail.Attachments.Add(attachment) SmtpServer.Port = 587 SmtpServer.Credentials = New System.Net.NetworkCredential("user", "password") SmtpServer.EnableSsl = True SmtpServer.Send(mail) End Sub 

Inicia sesión en tu cuenta y luego ve a google.com/settings/security/lesssecureapps

Probé todas las sugerencias que se encuentran aquí, desde habilitar aplicaciones menos seguras hasta intentar el puerto 587 … nada funcionó. Finalmente acabo de comentar la línea UseDefaultCredentials = false . Todo funcionó si no toqué ese booleano.

solo activa la configuración de o gmail. ver debajo de la imagen dada:

enter image description here

Si estás usando gmail.

  • 1-inicio de sesión en su cuenta

    2- navegar por este enlace

    3- Permitir aplicaciones menos seguras: ON

Disfrutar….

Tengo un código que funcionaba anteriormente y arroja este error ahora. No hay problema con la contraseña No es necesario convertir el mensaje a base64 tampoco. Resulta que necesito hacer lo siguiente:

  1. Desactivar la autenticación de dos factores
  2. Establezca “Permitir aplicaciones menos seguras” en ON
  3. Ingresa a tu cuenta de Gmail desde el servidor de producción
  4. Vaya aquí también para aprobar la actividad de inicio de sesión
  5. Ejecute su aplicación en el servidor de producción

Código de trabajo

  public static void SendEmail(string emailTo, string subject, string body) { var client = new SmtpClient("smtp.gmail.com", 587) { Credentials = new NetworkCredential("youremail@gmail.com", "secretpassword"), EnableSsl = true }; client.Send("youremail@gmail.com", emailTo, subject, body); } 

Desactivando la autenticación de dos factores Desactivando la autenticación de dos factores

Establezca “Permitir aplicaciones menos seguras” en ACTIVADO (la misma página, necesita desplazarse hacia abajo) Permitir aplicaciones menos seguras

Realmente miré muchas ideas, la única solución fue de esta manera (funciona con diferentes proveedores de correo electrónico):

  try { ViewProgressbar("Try to connect mail-server...", progressBar1.Value = 20); string host = dsProvider.Rows[y]["POP_hostOut"].ToString(); int port = int.Parse(dsProvider.Rows[y]["POP_portOut"].ToString()); //587 string[] email = von1.Split('@'); string userName = (dsProvider.Rows[y]["login"].ToString() == "email[0]@email[1]")? email[0]+"@"+email[1] : email[0]; string password = layer.getUserPassword(listSender.SelectedValue.ToString()); SmtpClient client = new SmtpClient(host, port); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; //A idea from MSDN but it not works. You got the "The server response was: 5.5.1 Authentication Required." //System.Net.NetworkCredential myCreds = new System.Net.NetworkCredential(userName, password, host); //System.Net.CredentialCache cache = new System.Net.CredentialCache(); //cache.Add(host, port, "NTLM", myCreds); ///cache.GetCredential(host, port, "NTLM"); //NTLM client.Credentials = new System.Net.NetworkCredential(userName, password); client.Host = host; client.Port = port; client.EnableSsl = true; client.Send(message); ViewProgressbar(); } catch (SmtpException ex)... 

Soy un suscriptor de Google Apps for Business y me paso las últimas horas lidiando con esto, incluso después de tener todas las configuraciones correctas (smtp, port, enableSSL, etc.). Esto es lo que funcionó para mí y los sitios web que lanzaban el error 5.5.1 al intentar enviar un correo electrónico:

  1. Inicie sesión en su admin.google.com
  2. Haga clic en SEGURIDAD <- si no está visible, luego haga clic en 'MÁS CONTROLES' y añádalo de la lista
  3. Haga clic en Configuración básica
  4. Desplácese hasta la parte inferior del cuadro Configuración básica, haga clic en el enlace: ‘Ir a configuración para aplicaciones menos seguras’
  5. Seleccione la opción n. ° 3: imponer el acceso a aplicaciones menos seguras para todos los usuarios (no recomendado)
  6. Presione GUARDAR en la parte inferior de la ventana

Después de hacer esto, mis formularios de correo electrónico del sitio web estaban funcionando nuevamente. ¡Buena suerte!

Es posible que necesite crear / generar una contraseña de APP específica de Gmail. su aplicación o script utilizará esta nueva contraseña en lugar de su contraseña habitual. Su contraseña regular seguirá funcionando bien para usted.

Eso es lo que hizo por mí. Aún utilicé la misma cuenta de correo electrónico, pero tuve que generar una nueva contraseña específica para la aplicación.

https://support.google.com/accounts/answer/185833?hl=en

Captura de pantalla

Básicamente puedes hacerlo aquí: https://security.google.com/settings/security/apppasswords

Un comentario de Tomasz Madeyski es lo que solucionó mi problema … él dice que existe un error en SetDefaultCredential, él dice:

“El problema es que en UseDefaultCredentials setter existe este código: this.transport.Credentials = value? (ICredentialsByHost) CredentialCache.DefaultNetworkCredentials: (ICredentialsByHost) null; que anula las credenciales establecidas por el creador de credenciales. Para mí, parece el error de SmtpClient”

si coloca smtpClient.UseDefaultCredentials = false después de establecer las credenciales … esta línea se establece para anular esas credenciales …

Debes rechazar las aplicaciones menos seguras para acceder a tu cuenta de Google .

que hacer:

https://myaccount.google.com/lesssecureapps

Utilicé todas las soluciones mencionadas anteriormente, pero finalmente funcionó solo después de habilitar el acceso IMAP desde la configuración de Gmail Enlace para habilitar el acceso IMAP en la configuración de Gmail

Por supuesto, los puntos en las otras soluciones también fueron necesarios.

intente cambiar el host, este es el nuevo, obtuve este Thunderbird configurador de mozilla

 Host = "smtp.googlemail.com" 

eso funciona para mí