C# Mail göndererek şifre yenileme

coolbassthe

Decapat
Katılım
6 Temmuz 2021
Mesajlar
226
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
"Mail gönderilemedi" hatası alıyorum. Butona basıldığında rastgele bir şifre üretip bu şifreyi mail adresine göndermesi gerekiyor fakat hata var.


C#:
            MailMessage ePosta = new MailMessage();
            ePosta.From = new MailAddress(textBox1.Text);
            ePosta.To.Add(textBox1.Text); //göndereceğimiz mail adresi

            ePosta.Subject = "Oto Galeri Şifre Sıfırlama"; //mail konusu
            ePosta.Body = "1"; //mail içeriği

            SmtpClient client = new SmtpClient();
            client.Credentials = new System.Net.NetworkCredential("[email protected]", "aliedis123");
            client.Port = 587;
            client.Host = "smtp.live.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;


Bu da butonun kodları:





C#:
            SqlConnection baglanti = new SqlConnection("Data Source=DESKTOP-BBL6OD5\\SQLEXPRESS;Initial Catalog=OtoGaleri;Integrated Security=True");
            if (baglanti.State == ConnectionState.Closed)
            {
                baglanti.Open();
            }
            SqlCommand komut = new SqlCommand("select * from musteribilgileri where epostaadresi='" + textBox1.Text + "'");
            komut.Connection = baglanti;
            SqlDataReader oku = komut.ExecuteReader();
            if (oku.Read())
            {
                sifre = oku["sifre"].ToString();

                lblSonuc.Visible = true;
                lblSonuc.ForeColor = Color.Green;
                lblSonuc.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
            {
                lblSonuc.Visible = true;
                lblSonuc.ForeColor = Color.Red;
                lblSonuc.Text = "Girmiş Olduğunuz Bilgiler Uyuşmuyor";
            }
        }
 
"Mail gönderilemedi" hatası alıyorum. Butona basıldığında rastgele bir şifre üretip bu şifreyi mail adresine göndermesi gerekiyor fakat hata var.


C#:
            MailMessage ePosta = new MailMessage();
            ePosta.From = new MailAddress(textBox1.Text);
            ePosta.To.Add(textBox1.Text); //göndereceğimiz mail adresi

            ePosta.Subject = "Oto Galeri Şifre Sıfırlama"; //mail konusu
            ePosta.Body = "1"; //mail içeriği

            SmtpClient client = new SmtpClient();
            client.Credentials = new System.Net.NetworkCredential("[email protected]", "aliedis123");
            client.Port = 587;
            client.Host = "smtp.live.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;


Bu da butonun kodları:





C#:
            SqlConnection baglanti = new SqlConnection("Data Source=DESKTOP-BBL6OD5\\SQLEXPRESS;Initial Catalog=OtoGaleri;Integrated Security=True");
            if (baglanti.State == ConnectionState.Closed)
            {
                baglanti.Open();
            }
            SqlCommand komut = new SqlCommand("select * from musteribilgileri where epostaadresi='" + textBox1.Text + "'");
            komut.Connection = baglanti;
            SqlDataReader oku = komut.ExecuteReader();
            if (oku.Read())
            {
                sifre = oku["sifre"].ToString();

                lblSonuc.Visible = true;
                lblSonuc.ForeColor = Color.Green;
                lblSonuc.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
            {
                lblSonuc.Visible = true;
                lblSonuc.ForeColor = Color.Red;
                lblSonuc.Text = "Girmiş Olduğunuz Bilgiler Uyuşmuyor";
            }
        }
Öncelikle SQL bağlantısı sağlanmaya çalışılıyor zaten, bağlanamadığı zaman programdan çıkması daha mantıklı != operatörü ile.

Ve host olarak smtp-mail.outlook.com kullanmayı deneyin.

Hatayı da belirtmemişsiniz.
 
Hocam gönderici mailinin Google hesabına girip (myaccount.google.com) Güvenlik sekmesine gelip 2 adımlı doğrulayıcıyı açmanız gerekiyor. Güvenlik sekmesinden Uygulama Şifreleri bölümüne gelin sonra, eğer Güvenlik sekmesinde yoksa öyle bir şey yukarıdaki arama kısmına "Uygulama" anahtar sözcüğünü yazınca çıkması lazım 3.seçenek olarak. Oradan kendinize ait bir key oluşturabilirsiniz, oluşturduğunuz anahtarı kopyalayıp mail ve şifre belirttiğiniz yerdeki Google hesabının şifresi ile oluşturduğunuz keyi değiştirin düzelmesi lazım.

Edit: şimdi farkettim arkadaşın hesabı hotmail'miş. Benim dediklerim gmail hesaplarında çalışıyor, hotmailde durum ne bilmiyorum.
 
1685474770308.png

Aldığım hata bu.

Hocam gönderici mailinin Google hesabına girip (myaccount.google.com) güvenlik sekmesine gelip 2 adımlı doğrulayıcıyı açmanız gerekiyor. Güvenlik sekmesinden uygulama şifreleri bölümüne gelin sonra, eğer güvenlik sekmesinde yoksa öyle bir şey yukarıdaki arama kısmına "uygulama" anahtar sözcüğünü yazınca çıkması lazım 3.seçenek olarak. Oradan kendinize ait bir key oluşturabilirsiniz, oluşturduğunuz anahtarı kopyalayıp mail ve şifre belirttiğiniz yerdeki Google hesabının şifresi ile oluşturduğunuz keyi değiştirin düzelmesi lazım.

Edit: Şimdi fark ettim arkadaşın hesabı Hotmail'miş. Benim dediklerim Gmail hesaplarında çalışıyor, Hotmail'de durum ne bilmiyorum.

Dediklerinizi yaptım ve Gmail hesabıyla değiştirdim.

Aldığım hatayı anlayabilen var mı?
 
Son düzenleme:
Hocam kimlik doğrulama hatalı diyor, şifrenizi ve mail adresinizi doğru girdiğinizden emin olun.
 

Yeni konular

Geri
Yukarı