none
Error envio de emails GMAIL RRS feed

  • Pregunta

  • Buenas, tengo este código para hacer un envio de emails y con gmail me da este fallo y por más que debugo y busco información no encuentro nada.

    El servidor STMP requiere una conexión segura o el cliente no se autenticó.
    La respuesta del servidor fue : 5.5.1 Authentication required

                //create the mail message
                MailMessage mail = new MailMessage();
    
                String emailUsuario = "miemail@gmail.com";
                String emailPassword = "password";
    
                //set the addresses
                mail.From = new MailAddress(emailUsuario);
                mail.To.Add(emailDestinatario);
               
                //set the content
                mail.Subject = "test email";
    
                // se crea el mensaje
                string body = "";
    
                
               ...
    
                // se define el smtp
                SmtpClient smtp = new SmtpClient()
                {
                    Host = "smtp.gmail.com",
                    Port = 587,
                    UseDefaultCredentials = false,
                    Credentials = new NetworkCredential(emailUsuario,emailPassword),
                    EnableSsl = true
                };
    
    
                try
                {
                    smtp.Send(mail);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
    
    

    Gracias

    jueves, 16 de junio de 2016 15:25

Respuestas

Todas las respuestas

  • Prueba de usar los puertos 465 ó 25 en vez del 587. Si no te sigue funcionando, entonces el smtpclient seria así:

    SmtpClient smtp = new SmtpClient()
                {
                    Host = "smtp.gmail.com",
                    Port = 465, //deberemos cambiar el puerto de 587 a 465.
                    UseDefaultCredentials = false,
                    Credentials = new NetworkCredential(emailUsuario,emailPassword),
                    EnableSsl = false //deshabilitaremos el ssl
                };

    No se si funcionará correctamente, pero puedes probarlo.

    Espero que te sirva,

    Gerry Soft.

    jueves, 16 de junio de 2016 15:54
  • Échale un vistazo a este artículo:

    https://www.emailarchitect.net/easendmail/kb/csharp.aspx?cat=2

    En particular, fíjate en esta nota:

    "If you got authentication error, you need to enable Allowing less secure apps or Sign in using App Passwords."

    Básicamente te está diciendo que hagas login en tu cuenta de GMail, vayas a los ajustes, y marques la casilla que permite acceder a las aplicaciones de baja seguridad.

    • Marcado como respuesta golfgti6 domingo, 19 de junio de 2016 17:19
    jueves, 16 de junio de 2016 15:58
    Moderador
  • hola

    el codigo parece estar correcto

    MailMessage - Envia mail con GMail (1/3)

    tengo el mismo ejemplo y me funciona, quizas el usuario y password que proporcionas no sea el correcto

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta golfgti6 domingo, 19 de junio de 2016 17:19
    jueves, 16 de junio de 2016 15:58
  • Debes ingresar a tu cuenta de gmail y configurar tu correo para que acepte el tipo de conexión que intenta tu programa. gmail implementa un protocolo "más" seguro que el protocolo normal de autenticación. Pero si lo configuras, te pemitirá usar el protocolo normal de tu clase smtp. Ellos lo denominan "conexión menos segura". Es más o menos mentira. FUD que le dicen.

    No es un problema de tu programa, así que puedes dejar de debuguear...

     
    • Editado walter_5 jueves, 16 de junio de 2016 16:01
    • Propuesto como respuesta ENSX viernes, 17 de junio de 2016 23:24
    • Marcado como respuesta golfgti6 domingo, 19 de junio de 2016 17:20
    jueves, 16 de junio de 2016 15:58
  • Hola amigo. te presento el código que utilizo para mandar un correo a través de gmail

    System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
                                            msg.To.Add(txtCorreoElctronico.Text.TrimEnd());
                                            msg.From = new MailAddress("Contacto.prueba@gmail.com", "Soporte de Sistema Prueba", System.Text.Encoding.UTF8);
                                            msg.Subject = "Bienvenido a Prueba";
                                            msg.SubjectEncoding = System.Text.Encoding.UTF8;
                                            msg.Body = "Buenos Dias Estimado " + txtNombre.Text.TrimEnd() + ". Ha ingresado como usuario al sistema. Su clave temporal para ingresar es '" + claveRandom + "'. Recuerde que la contraseña temporal se debe cambiar inmediatamente ingrese al sistema o el usuario se bloqueará por motivos de seguridad. SOPORTE Prueba";
                                            //msg.Attachments.Add(new Attachment("C:\\archivo.pdf")); adjuntar archivo
                                            msg.BodyEncoding = System.Text.Encoding.UTF8;
                                            msg.IsBodyHtml = false;
                                            //Aquí es donde se hace lo especial
                                            SmtpClient client = new SmtpClient();
                                            client.Credentials = new System.Net.NetworkCredential("Contacto.prueba@gmail.com", "ClavePrueba1");
                                            client.Port = 587;//puerto que utiliza gmail para mandar correos
                                            client.Host = "smtp.gmail.com";
                                            client.EnableSsl = true; //Esto es para que vaya a través de SSL que es obligatorio con GMail
                                            client.Send(msg);
                                            MessageBox.Show("Se le ha enviado el correo con la información necesaria, Favor revisar su correo", "CONTRASEÑA TEMPORAL ENVIADA", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                                            client.Dispose();
    Saludos


    jueves, 16 de junio de 2016 16:00
  • Hola , has intentado abrir la cuenta de correo que muestras ahi?

    Me ha pasado que cuando envio algunos correos desde un programa el gmail comienza a pedir que ingreses un código captcha para loguearte a la cuenta .

    Me parece que todo eso se configura en el mismo gmail.


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.
    Saludos.
    Lima-Perú


    • Editado Augusto1982 jueves, 16 de junio de 2016 16:11
    jueves, 16 de junio de 2016 16:11
  • Buen dia. En el Host = "smtp.live.com" solo podrias realizar este cambio.
    Y funciona con correos de gmail y Hotmail

    //create the mail message MailMessage mail = new MailMessage(); String emailUsuario = "miemail@gmail.com"; String emailPassword = "password"; //set the addresses mail.From = new MailAddress(emailUsuario); mail.To.Add(emailDestinatario); //set the content mail.Subject = "test email"; // se crea el mensaje string body = ""; ... // se define el smtp SmtpClient smtp = new SmtpClient() { Host = "smtp.live.com", //Solo puedes cambiar a live y te funciona para gmail de manera correcta Port = 587, UseDefaultCredentials = false, Credentials = new NetworkCredential(emailUsuario,emailPassword), EnableSsl = true }; try { smtp.Send(mail); } catch (Exception ex) { MessageBox.Show(ex.Message); }


    lunes, 20 de junio de 2016 15:31
  • En la configuración de la cuenta de gmail habilita el acceso de aplicaciones menos seguras y ejecuta nuevamente la aplicación.



    Saludos.

    • Marcado como respuesta golfgti6 jueves, 9 de marzo de 2017 19:08
    miércoles, 22 de junio de 2016 23:10