【发布时间】:2014-03-14 14:48:39
【问题描述】:
我创建了一个密码恢复页面,该页面向用户发送一封电子邮件,其中包含指向另一个页面的链接,他可以在其中重置密码。这是我的代码文件..
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("test.email@gmail.com", "dummypassword");
smtp.EnableSsl = true;
smtp.Send(Msg);
//Msg = null;
lbltxt.Text = "<i class='icon-check-sign'></i> 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> 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"; 代码行直接打印在发送的电子邮件上。
顺便说一下,这个项目托管在本地主机上。
所以我的问题是: 为什么此代码不创建指向用户应该重置密码的页面的可点击链接?有人可以分享他们对此的想法吗?
任何帮助将不胜感激!
【问题讨论】:
-
您没有将登录网址放在链接中,例如:登录
-
^ 我尝试添加一个
<a href='@Login.aspx?id=id'>Links</a>,但我的浏览器将我重定向到http://www.login.aspx/?id=id,而不是他应该被引导的页面。有任何想法吗?感谢您的帮助!
标签: c# asp.net localhost email