【问题标题】:Send a localhost link to an email in ASP?向 ASP 中的电子邮件发送 localhost 链接?
【发布时间】: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>&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"; 代码行直接打印在发送的电子邮件上。

顺便说一下,这个项目托管在本地主机上。

所以我的问题是: 为什么此代码不创建指向用户应该重置密码的页面的可点击链接?有人可以分享他们对此的想法吗?

任何帮助将不胜感激!

【问题讨论】:

  • 您没有将登录网址放在链接中,例如:登录
  • ^ 我尝试添加一个&lt;a href='@Login.aspx?id=id'&gt;Links&lt;/a&gt;,但我的浏览器将我重定向到http://www.login.aspx/?id=id,而不是他应该被引导的页面。有任何想法吗?感谢您的帮助!

标签: c# asp.net localhost email


【解决方案1】:

尝试更改此行

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);

【讨论】:

    猜你喜欢
    • 2014-05-20
    • 2016-09-20
    • 2011-02-14
    • 2011-04-10
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2012-01-27
    相关资源
    最近更新 更多