none
ENVIAR CONTRASEÑA A CORREO ELECTRÓNICO C# VISUAL STUDIO RRS feed

  • Pregunta

  • Buenas noches a todos tengo esté código y me gustaría que al poner el correo electronico en un textbox  

    Me envié la contraseña al correo electronico solicitado :

    ______________________________________________________________________________________________

    public partial class Recuperar_Contraseña : Form
        {
            public Recuperar_Contraseña()
            {
                InitializeComponent();

                string connstring = "Server=127.0.0.1; database=conexionbd; Uid= MiSSael; pwd=Mizael8080; ";
                MySqlConnection Conectar = new MySqlConnection(connstring);
                Conectar.Open();
                string query = @"Select * From Conexionbd 
        Where Correo_electronico = @correo and Contraseña = @password";
                MySqlCommand Codigo = new MySqlCommand(query, Conectar);
                Codigo.Parameters.AddWithValue("@correo", Asunto.Text);
                MySqlDataReader leer = Codigo.ExecuteReader();

                if (leer.Read())
                {
                        Correo_enviar.Text = Convert.ToString(("@correo"));
                        Correo_enviar.Text = Convert.ToString(("@password"));
                    }

                    leer.Close();
                }




           private void Entrar_btn_Click(object sender, EventArgs e)
            {
                {
                    MailMessage msg = new MailMessage("Belzebu1996@gmail.com", Para.Text, Asunto.Text, Correo_enviar.Text);
                    msg.IsBodyHtml = true;
                    SmtpClient sc = new SmtpClient("smtp.gmail.com", 587);
                    sc.UseDefaultCredentials = false;
                    NetworkCredential cre = new NetworkCredential("Belsebu1780@gmail.com", "nolamostrare");//your mail password
                    sc.Credentials = cre;
                    sc.EnableSsl = true;
                    sc.Send(msg);
                    MessageBox.Show("Mail Send");
                }
            }
        }
    }
    viernes, 21 de diciembre de 2018 7:25

Respuestas

  • Hice lo siguiente pero no me muestra la búsqueda en los textbox 

    Bueno, eso no tiene nada que ver con el envio de correo. Es una consulta normal y corriente a base de datos que está mal escrita. Concretamente, un primer error que detecto a simple vista es que en los leer[...] has puesto el nombre de los parámetros en lugar del nombre de los campos, es decir, has puesto leer["@correo"] cuando debería ser leer["Correo_electronico"] y lo mismo en la password. Puede que además de este error haya otros que no sean obvios a simple vista; en ese caso, lo depuras en la forma habitual, poniendo un punto de ruptura y siguiendo la ejecución paso a paso hasta encontrar el sitio concreto en el que falla.

    Pero hay una cosa que sorprende: con ese error, el resultado no debería ser que "no me muestra la búsqueda en los textbox", sino que "la aplicación pega un cascotazo tremendo y sale un error con el siguiente mensaje: ...". A no ser que la consulta no esté encontrando ningún registro, en cuyo caso significa que los datos que le estás pasando no concuerdan con la información que hay en la base de datos. Pero esto deberías detectarlo durante la sesión de depuración: al ejecutar paso a paso notarías que el leer.Read() devuelve false y se salta el if, y eso te llevaría inmediatamente a concluir que tienes que revisar la sentencia y/o sus parámetros.


    viernes, 21 de diciembre de 2018 9:39
    Moderador

Todas las respuestas

  • Está más o menos bien como lo tienes. Te falta llamar a la subrutina que envía el correo después de ejecutar la que recupera la correspondiente información de la base de datos, pero me imagino que eso ya lo tienes hecho y que simplemente lo que pasa es que se te ha olvidado copiar ese pedacito de código en la pregunta.

    Hay una cosa que falta, y es que donde envías el correo te falta poner la contraseña en el Body:

    msg.Body = aquiLaVariableDondeHayasGuardadoLaPassword;

    ah, y ponle msg.IsBodyHtml = false (en lugar de true) a no ser que estés dispuesto a ensamblar realmente un HTML para enviarlo en el body.

    Por cierto, espero que no uses esa aplicación para ninguna cosa "seria". Si lo hicieses, cualquier revisión de seguridad te la tiraría inmediatamente por guardar contraseñas en claro en lugar de usar resúmenes criptográficos (hash).

    viernes, 21 de diciembre de 2018 8:03
    Moderador
  • en el codigo veo algunos problemas

    solo estas asignando un solo parametro y el otro?

      string query = @"Select * From Conexionbd 
                                Where Correo_electronico = @correo and Contraseña = @password";
    MySqlCommand Codigo = new MySqlCommand(query, Conectar);
    Codigo.Parameters.AddWithValue("@correo", Asunto.Text);
    
    Codigo.Parameters.AddWithValue("@password", Password.Text);


    porque pones Asunto.Text como parametro de correo? eso esta raro

    Para tomar los valores deberias usar el reader

    if (leer.Read())
    {
          Correo_enviar.Text = Convert.ToString(reader["correo"]);
          TextBox2.Text = Convert.ToString(reader["password"]);         
    }

    no se que nombres de campos devuelves cuando haces select *

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 21 de diciembre de 2018 8:05
  • Hice lo siguiente pero no me muestra la búsqueda en los textbox 

    ______________________________________________________________________________________
           private void button1_Click(object sender, EventArgs e)
            {
                string connstring = "Server=127.0.0.1; database=conexionbd; Uid= Mi4sael; pwd=Misel80774; ";
                MySqlConnection Conectar = new MySqlConnection(connstring);
                Conectar.Open();
                string query = @"Select * From Conexionbd 
                Where Correo_electronico = @correo and Contraseña = @password";
                MySqlCommand Codigo = new MySqlCommand(query, Conectar);
                Codigo.Parameters.AddWithValue("@correo", Asunto.Text);
                Codigo.Parameters.AddWithValue("@password", Asunto.Text);
                MySqlDataReader leer = Codigo.ExecuteReader();
                if (leer.Read())
                {
                    Correo_enviar.Text = Convert.ToString(leer["@correo"]);
                    Contraseña_enviar.Text = Convert.ToString(leer["@password"]);
                }

                   leer.Close();
            }
        }
      }

            
    viernes, 21 de diciembre de 2018 9:03
  • Hice lo siguiente pero no me muestra la búsqueda en los textbox 

    Bueno, eso no tiene nada que ver con el envio de correo. Es una consulta normal y corriente a base de datos que está mal escrita. Concretamente, un primer error que detecto a simple vista es que en los leer[...] has puesto el nombre de los parámetros en lugar del nombre de los campos, es decir, has puesto leer["@correo"] cuando debería ser leer["Correo_electronico"] y lo mismo en la password. Puede que además de este error haya otros que no sean obvios a simple vista; en ese caso, lo depuras en la forma habitual, poniendo un punto de ruptura y siguiendo la ejecución paso a paso hasta encontrar el sitio concreto en el que falla.

    Pero hay una cosa que sorprende: con ese error, el resultado no debería ser que "no me muestra la búsqueda en los textbox", sino que "la aplicación pega un cascotazo tremendo y sale un error con el siguiente mensaje: ...". A no ser que la consulta no esté encontrando ningún registro, en cuyo caso significa que los datos que le estás pasando no concuerdan con la información que hay en la base de datos. Pero esto deberías detectarlo durante la sesión de depuración: al ejecutar paso a paso notarías que el leer.Read() devuelve false y se salta el if, y eso te llevaría inmediatamente a concluir que tienes que revisar la sentencia y/o sus parámetros.


    viernes, 21 de diciembre de 2018 9:39
    Moderador