private void SendMail(Uye uye) { try { // sifirlama kodu link sonuna eklenecek. ister tıklamaylayönlendirme ister kodu girin geçin gibi bir yönlendirme. sifirlamakodu ndan sonra yenisifre diye sayfa acilacak. o sayfanın parametresi sifirlamaKodu olacak. routueconfig i ona göre ayarla. string sifirlamaKodu = Guid.NewGuid().ToString(); SmtpClient sc = new SmtpClient(); sc.Port = 587; sc.Host = "smtp.gmail.com"; sc.EnableSsl = true; sc.Credentials = new NetworkCredential("{MAILADRESI}", "{SIFRE}"); MailMessage mail = new MailMessage(); mail.From = new MailAddress("{MAILADRESI}", "MvcBlog"); mail.To.Add(uye.Email); mail.Subject = "Şifre Sıfırlama MvcBlog"; mail.IsBodyHtml = true; mail.Body = "Şifre sıfırlama e-maili talep ettiniz.Şifre sıfırlamak için geçici sıfırlama kodunuz : " + sifirlamaKodu + " http://localhost:64874/Uye/Index/" + uye.UyeID; sc.Send(mail); SifreSifirlama sf = new SifreSifirlama(); sf.UyeID = uye.UyeID; sf.SifirlamaKodu = sifirlamaKodu; sf.Tarih = DateTime.Now; db.SifreSifirlama.Add(sf); db.SaveChanges(); } catch (Exception) { TempData["mailbasarisiz3"] = "Şifre sıfırlama maili başarısız oldu."; } }
public ActionResult SifirlamaKodu(SifreSifirlama sfr, Uye uye, int id) { if (sfr == null || id == 0) { TempData["kodhatali"] = "Hata var"; return(View()); } var kod = db.SifreSifirlama.Where(z => z.UyeID == id).OrderByDescending(x => x.Tarih).Take(1).SingleOrDefault(); if (kod.SifirlamaKodu != sfr.SifirlamaKodu || uye.KullaniciAdi != kod.Uye.KullaniciAdi) { TempData["hatalikod"] = "Şifre sıfırlama kodunuz yada kullanıcı adınız hatalı."; return(View(kod.Uye)); } else { return(Redirect("/Uye/YeniSifre/" + kod.UyeID)); } }