发送一封带有链接的电子邮件,该链接会将用户发布到我获得的特定页面
本文关键字:链接 用户 电子邮件 | 更新日期: 2023-09-27 17:56:12
基本上,我可以向用户发送电子邮件。我试着给他发这个:
MailMessage message = new MailMessage()
{
Subject = "YOURGURU account",
Body = "Thanks for joining our site. click th link below to validate your account"+
"<br/>"+
HttpContext.Current.Request.Url.Host
};
message.To.Add(new MailAddress("makovetskiyd@yahoo.co.uk", "Some name"));
message.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.EnableSsl = true;
client.Send(message);
Response.Redirect("CheckYourEmail.aspx");
HttpContext.Current.Request.Url.Host
功能在电子邮件中显示为"本地主机"。但我需要它看起来像一个真正的链接..我按下并重定向我。我使用视觉工作室 2010
似乎您正在使用
HttpContext.Current.Request.Url.Host
而不是HttpContext.Current.Request.Url
对于您的本地开发环境,您将获得localhost
,但是当您将其部署到某个 Web 服务器时,这会正确地将自身更新为托管的 Web 服务器 URL。
理想情况下,您将有一些路径将包含查询字符串,然后在页面加载中包含相应的代码来验证和使用查询字符串。
例:
<br/>"+HttpContext.Current.Request.Url.Host + @"/AccountValidate.aspx?id=SomeId"
注意:您也可以使用 HttpContext.Current.Request.Url,这会将您重定向到带有查询字符串的当前页面:
<br/>"+HttpContext.Current.Request.Url + "?id=SomeId"
然后在帐户验证的页面加载中.aspx或当前页面:
string id = Convert.ToString(Request.QueryString["id"]);
if(!string.IsNullOrEmpty(id))
... //Code here to inform the user of successful activation
要考虑的重要一点是,您需要某种方法来知道哪个用户单击了激活链接,因此查询字符串将很有用。
希望对您有所帮助!
我有点困惑,但无论如何我都会尽力提供帮助。
我认为您要做的是简单地在您的电子邮件中包含一个链接,用户可以单击该链接并访问您的网站。
为此,您需要在电子邮件中包含指向您网站的锚标记,而不是使用主机地址,您需要包含 Request.Url,如下所示:
String.Format("<a href='"{0}'">click here</a>",HttpContext.Current.Request.Url);
如果使用 Outlook 2010,请转到主页/新项目/电子邮件使用/HTML
然后突出显示您希望显示为链接的单词,并用鼠标右键单击并选择Hyperlinlk。这将打开一个框,您可以在其中选择链接应指向的位置。
正确选择后,您的单词应显示为颜色更改的链接并带有下划线。