Por alguna razón, ni la respuesta aceptada ni ninguna otra me funcionan para " Enviar correo electrónico en .NET a través de Gmail ". ¿Por qué no iban a funcionar?
ACTUALIZACIÓN: He intentado todas las respuestas (aceptadas y no) en la otra pregunta, pero ninguna de ellas funciona.
Solo me gustaría saber si funciona para alguien más, de lo contrario, Google podría haber cambiado algo (lo que sucedió antes).
Cuando pruebo el código que usa SmtpDeliveryMethod.Network
, rápidamente recibo una SmtpException en Enviar (mensaje). El mensaje es
El servidor SMTP requiere una conexión segura o el cliente no se autenticó.
La respuesta del servidor fue:
5.5.1 Se requiere autenticación. Obtenga más información en "<- en serio, termina allí.
ACTUALIZAR:
Esta es una pregunta que hice hace mucho tiempo, y la respuesta aceptada es el código que he usado muchas, muchas veces en diferentes proyectos.
He tomado algunas de las ideas en esta publicación y en otros proyectos de EmailSender para crear un proyecto de EmailSender en Codeplex . Está diseñado para la capacidad de prueba y es compatible con mis servicios SMTP favoritos, como GoDaddy y Gmail.
Respuestas:
CVertex, asegúrese de revisar su código y, si eso no revela nada, publíquelo. Estaba habilitando esto en un sitio ASP.NET de prueba en el que estaba trabajando, y funciona.
En realidad, en algún momento tuve un problema con mi código. No lo detecté hasta que tuve una versión más simple en un programa de consola y vi que estaba funcionando (sin cambios en el lado de Gmail, ya que te preocupaba). El siguiente código funciona igual que las muestras a las que se refirió:
También lo hice funcionar usando una combinación de web.config, http://msdn.microsoft.com/en-us/library/w355a94k.aspx y código (porque no hay coincidencia
EnableSsl
en el archivo de configuración :().fuente
Lo siguiente es casi seguro que sea la respuesta A SU PREGUNTA SI todo ha fallado :
Obtuve exactamente el mismo error, resulta que el nuevo algoritmo de medición de la fuerza de la contraseña de Google ha cambiado considerando que mi contraseña actual es demasiado débil y no me dice nada al respecto (ni siquiera un mensaje o advertencia) ... ¿Cómo descubrí esto? ? Bueno, decidí cambiar mi contraseña para ver si me ayudaría (intenté todo lo demás en vano) y cuando cambié mi contraseña, ¡funcionó!
Luego, para un experimento, intenté cambiar mi contraseña a mi contraseña anterior para ver qué pasaría, y Gmail en realidad no me permitió hacer esto, citando la razón "lo siento, no podemos permitirle guardar este cambio como haya elegido la contraseña es demasiado débil "y no me permitió volver a mi contraseña anterior. De esto deduje que se estaba produciendo un error porque a) necesita cambiar su contraseña una vez cada x cantidad de meses ob). como dije antes, sus algoritmos de seguridad de contraseña cambiaron y, por lo tanto, la contraseña débil que tenía no fue aceptada, ¡aunque no dijeron nada al respecto cuando intentaban iniciar sesión en CUALQUIER LUGAR! Este (número 2) es el escenario más probable, ya que mi contraseña débil tenía aproximadamente 4 meses y me permitió usarla en Gmail.
Es bastante malo que no hayan dicho nada al respecto, pero tiene sentido. Debido a que la mayoría de los correos electrónicos secuestrados se inician sesión usando software fuera de gmail, y supongo que se requiere que tenga una contraseña más segura si desea usar Gmail fuera del entorno de Gmail.
¡Espero que esto ayude!
fuente
Además de los otros pasos de solución de problemas anteriores, también me gustaría agregar que si ha habilitado la autenticación de dos factores (también conocida como verificación de dos pasos ) en su cuenta de GMail, debe generar una contraseña específica de la aplicación y usarla nuevamente contraseña generada para autenticar a través de SMTP .
Para crear uno, visite: https://www.google.com/settings/ y elija Autorizar aplicaciones y sitios para generar la contraseña.
fuente
Enlace a la configuración de Gmail
fuente
También tuve algunos problemas para enviar correos electrónicos desde mi cuenta de gmail, debido a varias de las situaciones mencionadas anteriormente. Aquí hay un resumen de cómo lo hice funcionar y mantenerlo flexible al mismo tiempo:
Y ahora, cuando quiera enviar correos electrónicos, todo lo que necesita hacer es llamar
SSLMail.SendMail
:por ejemplo, en una página con un control PasswordRecovery:
O en cualquier parte de su código puede llamar:
¡Espero que esto ayude a cualquiera que se encuentre con esta publicación! (Utilicé VB.NET pero creo que es trivial convertirlo a cualquier lenguaje .NET).
fuente
Si recibe un error como "El servidor SMTP requiere una conexión segura o el cliente no se autenticó. La respuesta del servidor fue: 5.5.1 Se requiere autenticación. Obtenga más información en" como obtengo antes de esto, asegúrese de que la línea esté
SMTPClientObj.UseDefaultCredentials = False
incluida y esta línea debería antes de laSMTPClientObj.Credentials
.Intenté cambiar estas 2 líneas de la manera opuesta y el error de autenticación requerida 5.5.1 regresó.
fuente
Oh ... es increíble ... Primero, no pude enviar un correo electrónico por ningún motivo. Pero después de cambiar la secuencia de estas dos líneas como se muestra a continuación, funciona perfectamente.
¡¡¡Espero que esto ayude!!! :)
fuente
El problema no es la capacidad técnica para enviar a través de gmail. Eso funciona para la mayoría de las situaciones. Si no puede enviar una máquina, generalmente se debe a que la máquina no se ha autenticado con un humano en los controles al menos una vez.
El problema que enfrentan la mayoría de los usuarios es que Google decide cambiar los límites de salida todo el tiempo. Siempre debe agregar código defensivo a su solución. Si comienza a ver errores, baje la velocidad de envío y simplemente deje de enviar por un tiempo. Si sigue intentando enviar Google, a veces agregará más tiempo a su período de demora antes de que pueda volver a enviar.
Lo que he hecho en mi sistema actual es enviar con un retraso de 1.5 segundos entre cada mensaje. Luego, si recibo algún error, pare durante 5 minutos y luego comience nuevamente. Esto generalmente funciona y le permitirá enviar hasta los límites de la cuenta (la última vez que lo verifiqué fue de 2,000 para los principales inicios de sesión de los clientes por día).
fuente
Pasos simples para arreglar esto:
1) Inicie sesión en su Gmail
2) Navegue a esta página https://www.google.com/settings/security/lesssecureapps y configúrelo en "Activar"
fuente
Tuve el mismo problema, pero resultó que mi protección antivirus estaba bloqueando el correo electrónico saliente "spam". Desactivar esto me permitió usar el puerto 587 para enviar correos electrónicos SMTP a través de GMail
fuente
Si nada más ha funcionado aquí para usted, es posible que deba permitir el acceso a su cuenta de gmail desde aplicaciones de terceros. Este fue mi problema. Para permitir el acceso, haga lo siguiente:
¡Esto funcionó para mí, espero que funcione para alguien más!
fuente
No estoy seguro de qué versión de .NET se requiere para esto porque eglasius mencionó que no hay una
enableSsl
configuración coincidente (estoy usando .NET 4.0, pero sospecho que funciona en .NET 2.0 o posterior), pero esta configuración funcionó para yo (y no requiere que uses ninguna configuración programática):Es posible que primero deba habilitar POP o IMAP en su cuenta de Gmail: https://mail.google.com/mail/?shva=1#settings/fwdandpop
Recomiendo probarlo primero con un cliente de correo normal ...
fuente
@Andres Pompiglio: Sí, es correcto, debe cambiar su contraseña al menos una vez ... este código funciona bien:
Y puede hacer una llamada a la función usando:
fuente
Estaba usando una conexión VPN corporativa. Fue la razón por la que no pude enviar correos electrónicos desde mi aplicación. Funciona si me desconecto de VPN.
fuente
También descubrí que Google desactivó la cuenta que utilicé para iniciar sesión por algún motivo. Una vez que restablecí mi contraseña (a la misma que solía ser), pude enviar correos electrónicos muy bien. También recibí el mensaje 5.5.1.
fuente
También había intentado muchas soluciones, pero hacer algunos cambios funcionará
con smtpclient los parámetros anteriores son trabajo en gmail
fuente
Recibía el mismo error y ninguna de las soluciones anteriores me ayudó.
Mi problema era que estaba ejecutando el código desde un servidor remoto, que nunca se había utilizado para iniciar sesión en la cuenta de Gmail.
Abrí un navegador en el servidor remoto e inicié sesión en gmail desde allí. Hizo una pregunta de seguridad para verificar que era yo, ya que esta era una nueva ubicación. Después de hacer la verificación de seguridad, pude autenticarme a través del código.
fuente
Active aplicaciones menos seguras para su cuenta: https://www.google.com/settings/security/lesssecureapps
fuente
Me encontré con este mismo error ( "El servidor SMTP requiere una conexión segura o el cliente no se autenticó. La respuesta del servidor fue: 5.5.1 Se requiere autenticación. Obtenga más información en" ) y descubrí que estaba usando la contraseña incorrecta. Arreglé las credenciales de inicio de sesión y se envió correctamente.
Sé que es tarde, pero tal vez esto ayude a alguien más.
fuente
Otra cosa que he encontrado es que debes cambiar tu contraseña al menos una vez. E intente usar una contraseña de nivel seguro (no use el mismo usuario que la contraseña, 123456, etc.)
fuente
Otra posible solución para ti. Estaba teniendo problemas similares al conectarme a gmail a través de IMAP. Después de probar todas las soluciones que encontré, leerá aquí y en otros lugares sobre SO (por ejemplo, habilite IMAP, habilite el acceso menos seguro a su correo, usando https://accounts.google.com/b/0/displayunlockcaptcha y etc.), en realidad configuré una nueva cuenta de gmail una vez más.
En mi prueba original, la primera cuenta de Gmail que había creado, me había conectado a mi cuenta principal de Gmail. Esto dio como resultado un comportamiento errático en el que Google hacía referencia a la cuenta incorrecta. Por ejemplo, ejecutando https://accounts.google.com/b/0/displayunlockcaptcha abrió mi cuenta principal en lugar de la que había creado para ese fin.
Entonces, cuando creé una nueva cuenta y no la conecté a mi cuenta principal, después de seguir todos los pasos apropiados como se indica arriba, ¡descubrí que funcionaba bien!
Todavía no he confirmado esto (es decir, reproducido), pero aparentemente lo hizo por mí ... espero que ayude.
fuente
Conjunto
antes de
fuente
Hay una o más razones para estos errores.
Inicie sesión con su Gmail (o cualquier otro si) en su sistema local.
Compruebe también si hay una aplicación menos segura y configúrela como "Activar". Aquí encontrará el enlace para GMAIL. https://www.google.com/settings/security/lesssecureapps
verifique EnableSsl en su código de correo electrónico y también configúrelo como verdadero.
Compruebe también qué puerto está utilizando actualmente. 25 es Global, pero también puede verificarlo para otros como 587. marque aquí. ¿Todas las comunicaciones SMTP suceden más de 25?
SI ESTÁS A DISTANCIA : Comprueba la respuesta de Vlad Tamas arriba.
fuente
También puede conectarse a través del puerto 465, pero debido a algunas limitaciones del espacio de nombres System.Net.Mail, es posible que deba modificar su código. Esto se debe a que el espacio de nombres no ofrece la capacidad de realizar conexiones SSL implícitas. Esto se analiza en http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx , y yo Hemos proporcionado un ejemplo de cómo usar el CDO (objeto de datos de colaboración) en otra discusión ( GMail SMTP a través de errores de C # .Net en todos los puertos ).
fuente
Tuve este problema resuelto. Aparentemente ese mensaje se usa en múltiples tipos de error. Mi problema fue que había alcanzado mi máximo de 500 correos enviados.
inicie sesión en la cuenta e intente enviar un correo manualmente. Si se alcanza el límite, le informará
fuente
Si tiene la verificación en dos pasos, aumente su cuenta de Gmail, deberá generar una contraseña de aplicación. https://support.google.com/accounts/answer/185833?p=app_passwords_sa&hl=en&visit_id=636903322072234863-1319515789&rd=1 Seleccione Cómo generar una opción de contraseña de aplicación y siga los pasos proporcionados. Copie y pegue la contraseña de la aplicación generada en algún lugar, ya que no podrá recuperarla después de hacer clic en HECHO.
fuente
fuente
Cambie su contraseña de gmail e intente nuevamente, debería funcionar después de eso.
No sé por qué, pero cada vez que cambia su alojamiento tiene que cambiar su contraseña.
fuente