2014-02-15 1 views
0

Я создал страницу восстановления пароля, которая отправляет электронное письмо пользователю, содержащему ссылку на другую страницу, где он может сбросить свой пароль. Вот мой код файла ..Отправить ссылку localhost на адрес электронной почты в ASP?

protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
     try 
     { 
      DataSet ds = new DataSet(); 
      using (SqlConnection con = new SqlConnection("Data Source=DBS_WINDOWS7;Initial Catalog=LMS;Integrated Security=True")) 
      { 
       con.Open(); 
       SqlCommand cmd = new SqlCommand("SELECT AccountID, Password FROM tblAccount Where Email= '" + txtEmail2.Text.Trim() + "'", con); 
       SqlDataAdapter da = new SqlDataAdapter(cmd); 
       da.Fill(ds); 
       con.Close(); 
      } 
      if (ds.Tables[0].Rows.Count > 0) 
      { 
       MailMessage Msg = new MailMessage(); 
       // Sender e-mail address. 
       Msg.From = new MailAddress(txtEmail2.Text); 
       // Recipient e-mail address. 
       Msg.To.Add(txtEmail2.Text); 
       Msg.Subject = "Your Password Details"; 
       Msg.Body = HttpContext.Current.Request.Url.Host + @"Login.aspx?id=id"; 
        Msg.IsBodyHtml = true; 
       // your remote SMTP server IP. 
       SmtpClient smtp = new SmtpClient(); 
       smtp.Host = "smtp.gmail.com"; 
       smtp.Port = 587; 
       smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
       smtp.UseDefaultCredentials = false; 
       smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "dummypassword"); 
       smtp.EnableSsl = true; 
       smtp.Send(Msg); 
       //Msg = null; 
       lbltxt.Text = "<i class='icon-check-sign'></i>&nbsp;&nbsp;We have sent your password. Go check it out!"; 
       lbltxt.CssClass = "alert alert-success"; 
       // Clear the textbox valuess 
       txtEmail.Text = ""; 
       txtEmail2.Text = ""; 
      } 
      else 
      { 
       lbltxt.CssClass = "alert alert-error"; 
       lbltxt.Text = "<i class='icon-question-sign'></i>&nbsp;&nbsp;Something went wrong. Are you sure that's your email with us?"; 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine("{0} Exception caught.", ex); 
     } 
    } 

Электронная почта отправка работает отлично, но ссылка на которую я пытаюсь отобразить не кликабельны и @"Login.aspx?id=id"; код строки печатается непосредственно на адрес электронной почты отправлено.

Этот проект размещен на локальном хосте.

Так что мой вопрос: Почему этот код не создает ссылку для перехода на страницу, где пользователь должен сбросить свой пароль? Может ли кто-нибудь поделиться своими мыслями по этому поводу?

Любая помощь будет принята с благодарностью!

+0

Вы пропускаете поставить URL входа внутри ссылки, например: Login

+0

^Я попытался Добавление 'Links' но мой браузер перенаправил меня на http: //www.login.aspx/? id = id', а не на страницу, на которой он должен быть направлен. Есть идеи? Спасибо за вашу помощь! – Saudate

ответ

0

Попробуйте изменить эту строку

Msg.Body = HttpContext.Current.Request.Url.Host + @"Login.aspx?id=id"; 

прочитать:

Msg.Body = String.Format("<a href='{0}/Login.aspx?id=id'>Link</a>", HttpContext.Current.Request.Url.Host);