فرستادن ایمیل بازیابی کلمه عبور در asp.net
چهارشنبه 15 بهمن 1393در این مقاله میخواهیم زمانی که کاربر کلمه عبور خود را فراموش کرده است بتواند با وارد کردن آدرس ایمیل خود یک ایمیل حاوی نام کاربری و کلمه عبور خود دریافت کند
یک پایگاه داده به نام LoginDB و یک جدول به نام Users با فیلد های زیر میسازیم:
سپس چند رکورد در آن درج میکنیم:
به صفحه خود یک label ، textbox و button اضافه کنید:
<asp:TextBox ID="txtEmail" runat="server" Width = "250" /> <br /> <asp:Label ID="lblMessage" runat="server" /> <br /> <asp:Button Text="Send" runat="server" OnClick="SendEmail" />
در این مقاله از فضای نام های زیر استفاده میکنیم:
using System.Net; using System.Net.Mail; using System.Drawing; using System.Configuration; using System.Data.SqlClient;
اگر کاربری با ایمیل وارد شده پیدا نکردیم یک پیام نمایش میدهیم به صفحه aspx.cs. خود بروید و کدر زیر را بنویسید:
protected void SendEmail(object sender, EventArgs e) { string username = string.Empty; string password = string.Empty; string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd = new SqlCommand("SELECT Username, [Password] FROM Users WHERE Email = @Email")) { cmd.Parameters.AddWithValue("@Email", txtEmail.Text.Trim()); cmd.Connection = con; con.Open(); using (SqlDataReader sdr = cmd.ExecuteReader()) { if (sdr.Read()) { username = sdr["Username"].ToString(); password = sdr["Password"].ToString(); } } con.Close(); } } if (!string.IsNullOrEmpty(password)) { MailMessage mm = new MailMessage("sender@gmail.com", txtEmail.Text.Trim()); mm.Subject = "Password Recovery"; mm.Body = string.Format("Hi {0},<br /><br />Your password is {1}.<br /><br />Thank You.", username, password); mm.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.EnableSsl = true; NetworkCredential NetworkCred = new NetworkCredential(); NetworkCred.UserName = "sender@gmail.com"; NetworkCred.Password = "<Password>"; smtp.UseDefaultCredentials = true; smtp.Credentials = NetworkCred; smtp.Port = 587; smtp.Send(mm); lblMessage.ForeColor = Color.Green; lblMessage.Text = "Password has been sent to your email address."; } else { lblMessage.ForeColor = Color.Red; lblMessage.Text = "This email address does not match our records."; } }
حالا میتونید برنامه رو اجرا کنید:
- ASP.net
- 5k بازدید
- 13 تشکر