Quiero enviar un correo electrónico desde mi aplicación y he escrito el siguiente código para enviar correo
MailMessage msg = new MailMessage();
msg.From = new MailAddress("mymailid");
msg.To.Add("receipientid");
msg.Subject = "test";
msg.Body = "Test Content";
msg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("mymailid", "mypassword", "smtp.gmail.com");
client.Host = "smtp.gmail.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.UseDefaultCredentials = true;
client.Send(msg);
Lo estoy ejecutando en localhost, así que, ¿qué error estoy cometiendo al enviarlo?
Cuando envío el botón, aparece un error como
El servidor SMTP requiere una conexión segura o el cliente no fue autenticado. La respuesta del servidor fue: 5.5.1 Se requiere autenticación.
Código en archivo Web.config
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="smtpServer" value="smtp.gmail.com" />
<add key="EnableSsl" value = "true"/>
<add key="smtpPort" value="587" />
<add key="smtpUser" value="[email protected]" />
<add key="smtpPass" value="mypassword" />
<add key="adminEmail" value="[email protected]" />
</appSettings>
<system.net>
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.gmail.com" password="mypassword" port="587" userName="[email protected]" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
¿Qué debo hacer para solucionar este error y enviar correo?
Respuestas:
Primero verifique los problemas relacionados con la seguridad de Gmail. Es posible que haya habilitado la doble autenticación en gmail. También revise su bandeja de entrada de Gmail si recibe alguna alerta de seguridad. En tales casos, verifique otra respuesta de @mjb como se muestra a continuación
A continuación se muestra lo muy general que siempre verifico primero para tales problemas
configúrelo en falso.
Tenga en cuenta la respuesta de @Joe King : debe configurar client.UseDefaultCredentials antes de configurar client.Credentials
fuente
Tengo el mismo problema.
He encontrado esta solución:
Google puede bloquear los intentos de inicio de sesión de algunas aplicaciones o dispositivos que no utilizan los estándares de seguridad modernos. Dado que estas aplicaciones y dispositivos son más fáciles de ingresar, bloquearlos ayuda a mantener su cuenta más segura.
Algunos ejemplos de aplicaciones que no son compatibles con los últimos estándares de seguridad incluyen:
Por lo tanto, debe habilitar el inicio de sesión menos seguro (o el acceso a la aplicación menos segura ) en su cuenta de Google.
Después de iniciar sesión en la cuenta de Google, vaya a:
https://www.google.com/settings/security/lesssecureapps
o
https://myaccount.google.com/lesssecureapps
En C #, puede usar el siguiente código:
-------------------
Información compartida por Michael Freidgeim en el área de comentarios a continuación:
respuesta similar con capturas de pantalla https://stackoverflow.com/a/32457468/52277
fuente
Asegúrese de configurar
SmtpClient.Credentials
después de llamarSmtpClient.UseDefaultCredentials = false
.El orden es importante ya que la configuración
SmtpClient.UseDefaultCredentials = false
se restableceráSmtpClient.Credentials
a nula.fuente
He buscado y probado diferentes cosas durante horas. En resumen, tuve que tener en cuenta los siguientes puntos:
smtp.gmail.com
lugar desmtp.google.com
client.UseDefaultCredentials = false;
antes de establecer credencialesclient.EnableSsl = true;
Si estos pasos no le ayudaron, marque esta respuesta .
Quizás, también pueda encontrar algo útil en estas Preguntas frecuentes de System.Net.Mail .
fuente
Intente iniciar sesión en su cuenta de gmail. se bloquea si envía correos electrónicos utilizando Gmail SMTP. No sé el límite de correos electrónicos que puede enviar antes de que se bloquee, pero si inicia sesión una vez, volverá a funcionar desde el código. asegúrese de que su configuración webconfig sea buena.
fuente
Pruébelo de esta manera, acabo de hacer algunos cambios de luz:
También muestre su archivo app.config, si tiene configuraciones de correo allí.
fuente
intente habilitar permitir el acceso a aplicaciones menos seguras.
Aquí, puede habilitar una aplicación menos segura después de iniciar sesión con su Gmail.
https://myaccount.google.com/lesssecureapps
Gracias.
fuente
Encontré el mismo problema incluso si configuré "UseDefaultCredentials" en falso. Más tarde descubrí que la causa principal es que activé la "Verificación en 2 pasos" en mi cuenta. Después de apagarlo, el problema desapareció.
fuente
Active la aplicación menos segura desde este enlace y boom ...
fuente
Asegúrese de que se permita el acceso a la aplicación menos segura.
fuente
A continuación se muestra 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éntelo
Puede remitirlo en Envío de correo
fuente
Si se trata de una nueva cuenta de Google, debe enviar un correo electrónico (el primero) a través de la interfaz de usuario habitual. Después de eso, puede usar su aplicación / robot para enviar mensajes.
fuente
Debe considerar especificar los datos de configuración de SMTP en el archivo de configuración y no sobrescribirlos en un código; consulte los datos de configuración de SMTP en http://www.systemnetmail.com/faq/4.1.aspx
fuente
Me he encontrado con el mismo problema varias veces. Después de habilitar la opción de aplicación menos segura, el problema se resolvió. Habilite la aplicación menos segura desde aquí: https://myaccount.google.com/lesssecureapps
espero que esto ayude.
fuente
Si se encuentra en un entorno de prueba y no desea establecer la configuración de seguridad, debe permitir aplicaciones menos seguras a través de. este enlace en Gmail.
https://myaccount.google.com/lesssecureapps
fuente
algunos servidores smtp (seguros) requieren que proporcione tanto el nombre de usuario como el correo electrónico, si es gmail, lo más probable es que sea el problema de 'Inicio de sesión menos seguro' que debe abordar, de lo contrario, puede intentar:
observe que el correo electrónico de y el nombre de usuario son diferentes a diferencia de algunas implementaciones que se refieren a ellos como lo mismo.
llamar a este método se puede hacer así:
fuente
Después de activar la opción menos segura y probar otras soluciones, si aún tiene el mismo problema, intente utilizar esta sobrecarga:
en vez de:
fuente
Creé una suscripción de desarrollador de Microsoft 365 (E5) hoy por la mañana y la usé para enviar un correo electrónico de prueba con la siguiente configuración
No funcionó al principio, ya que seguía recibiendo este mensaje de error con la excepción lanzada por este código. Luego, pasé más de 4 horas jugando con la configuración del centro de administración de Microsoft 365 y leyendo artículos para resolver el problema. Al final, cambié mi contraseña del centro de administración de Microsoft 365 y funcionó a la perfección. Por lo tanto, vale la pena intentar cambiar la contraseña cuando reciba este mensaje, antes de pensar en cualquier solución avanzada.
Tenga en cuenta que la contraseña no era válida con seguridad ya que inicié sesión en mi cuenta de Microsoft 365 sin ningún problema. sin embargo, el cambio de contraseña resolvió el problema.
fuente
También me enfrentaba a un problema como 'El servidor SMTP requiere una conexión segura o el cliente no estaba autenticado. La respuesta del servidor fue: 5.5.0 Se requiere autenticación 'y luego revisé muchos materiales de Internet, pero no me ayudó del todo. Cómo lo resolví como
paso 1: smtp.gmail.com es el servidor de gmail, así que vaya a la configuración de gmail de su cuenta-> haga clic en ver todas las configuraciones-> Reenvío e IMAP / POP-> marque pop e imap está habilitado, si no lo habilita-> Guardar cambios. paso2-haga clic en su imagen de perfil de Gmail-> haga clic en Administrar su cuenta de Google-> vaya a la pestaña de seguridad-> verifique Acceso a aplicaciones menos seguras (esta opción estará disponible si no ha optado por la verificación en dos pasos) -> por defecto Google lo establecerá como deshabilitado, lo habilitará para usar su contraseña de gmail real para enviar correo electrónico. nota: -Habilitar el acceso a Gmail para aplicaciones menos seguras puede ser peligroso para usted, así que no lo recomiendo
paso 3: -si su cuenta tiene habilitada la verificación en dos pasos o desea usar una contraseña que no sea su contraseña real de gmail usando la contraseña específica de la aplicación, intente esto: - haga clic en su imagen de perfil de gmail-> haga clic en Administrar su cuenta de Google-> vaya a seguridad pestaña-> busque APP PASSWORD-> seleccione cualquier nombre de aplicación dado-> seleccione cualquier nombre de dispositivo-> haga clic en generar-> copie la contraseña de 16 dígitos y péguela en su aplicación donde debe ingresar una contraseña de gmail en lugar de tu contraseña de gmail real.
fuente