Onur Keçe

Masaüstü Yazılım Geliştirici

Web Geliştirici

0

Sepetinizde ürün bulunmuyor.

Onur Keçe

Masaüstü Yazılım Geliştirici

Web Geliştirici

Blog Post

C# Şifremi Unuttum (Mail’le Hatırlatma)

6 Ağustos 2020 C#
C# Şifremi Unuttum (Mail’le Hatırlatma)

Bu yazımızda Şifremi unuttum kısmını yapacağız. Yapmış olduğumuz projelerde kullanıcılar şifrelerini unutmuş olabilirler. Yapacağımız örnekte ise veritabanında kayıtlı olan şifreyi, kullanıcının sisteme kayıtlı olan mail adresine göndermeyi göstereceğiz. İlk önce aşağıdaki login tasarımını yapıyoruz.

Yukarıdaki tasarımda gördüğünüz gibi “Şifremi Unuttum” yazılı bir linklabel ekledik. Üzerine çift tıklayarak aşağıdaki kodları yazıyoruz.

private void linkSifremiUnuttum_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
  this.Hide();
  sifremiunuttum frm = new sifremiunuttum();
  frm.Show();
}

Yukarıda yazdığımız kod bize şifremiunuttum isimli bir form açacaktır ve bu formu aşağıdaki gibi tasarlayalım.

Formu tasarladıktan sonra MailGonder() isimli public bir sınıf oluşturacağız. Öncelikle mail kodlarına erişebilmek için “using System.Security;”, “using Sysytem.Net.Mail;” kütüphanesini eklemeyi unutmayınız. Kodlarımızı yazalım.

public bool MailGonder(string konu, string icerik)
{
   MailMessage ePosta = new MailMessage();
   ePosta.From = new MailAddress("Mail Adresiniz.");
   ePosta.To.Add(txtMail.Text); //göndereceğimiz mail adresi

   ePosta.Subject = konu; //mail konusu
   ePosta.Body = icerik; //mail içeriği 

   SmtpClient client = new SmtpClient();
   client.Credentials = new System.Net.NetworkCredential("Mail Adresiniz.", "Mail Şifreniz.");
   client.Port = 587;
   client.Host = "smtp.outlook.com";
   client.EnableSsl = true;
   client.Send(ePosta);
   object userState = true;
   bool kontrol = true;
   try
   {
     client.SendAsync(ePosta, (object)ePosta);
   }
   catch (SmtpException ex)
   {
     kontrol = false;
     MessageBox.Show(ex.Message);
   }
   return kontrol;
}

Yukarıdaki sınıfı yazdıktan sonra Mail Gönder butonuna çift tıklayarak kullanıcının veritabanında kayıtlı olduğu mail adresine şifreyi gönderelim. Öncelikle SQL kodlarına erişebilmek için “using System.Data.SqlClient;” kütüphanesini eklemeyi unutmayınız. Aşağıdaki kodları yazalım.

string sifre;
private void btnGonder_Click(object sender, EventArgs e)
{
   try
   {
      SqlConnection baglanti = new SqlConnection("Data Source=ONUR;Initial Catalog=Mutakabat;Integrated Security=True");
      if (baglanti.State == ConnectionState.Closed)
      {
        baglanti.Open();
      }
      SqlCommand komut = new SqlCommand("select * from users where mail='" + txtMail.Text + "'");
      komut.Connection = baglanti;
      SqlDataReader oku = komut.ExecuteReader();
      if (oku.Read())
      {
        sifre = oku["sifre"].ToString();

        lblHata.Visible = true;
        lblHata.ForeColor = Color.Green;
        lblHata.Text = "Girmiş Olduğunuz Bilgiler Uyuşuyor Şifreniz Mail Olarak Gönderildi";

        progressBar1.Visible = true;
        progressBar1.Maximum = 900000;
        progressBar1.Minimum = 90;

        for (int j = 90; j < 900000; j++)
        {
          progressBar1.Value = j;
        }

        MailGonder("ŞİFRE HATIRLATMA", "Şifreniz: " + sifre);
        baglanti.Close();
      }
      else
      {
         lblHata.Visible = true;
         lblHata.ForeColor = Color.Red;
         lblHata.Text = "Girmiş Olduğunuz Bilgiler Uyuşmuyor";
      }
   }
   catch (Exception)
   {
      lblHata.Visible = true;
      lblHata.ForeColor = Color.Red;
      lblHata.Text = "Mail Gönderme Hatası";
   }

}

Yukarıda yazığımız kod eğer kullanıcıya ait mail bilgisi doğru ise mail gönderme işlemi başarıyla gerçekleşmiştir. Aksi halde mail gönderimi başarısız mesajı döndürecektir. Projeden ekran görüntüleri aşağıdaki yer almaktadır.

Sisteme Kayıtlı Mail’e Şifre Gönder

Gelen Mail