C# 发送一封带有链接的电子邮件,该链接将用户发布到我获得的特定页面!

C# 发送一封带有链接的电子邮件,该链接将用户发布到我获得的特定页面!,c#,asp.net,email,C#,Asp.net,Email,基本上,我可以向用户发送电子邮件。我试着寄给他这个: MailMessage message = new MailMessage() { Subject = "YOURGURU account", Body = "Thanks for joining our site. click th link below to validate your account"+ "<br/>"+ HttpContext.Current.Re

基本上,我可以向用户发送电子邮件。我试着寄给他这个:

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");
MailMessage=newmailmessage()
{
Subject=“YOURGURU帐户”,
Body=“感谢您加入我们的网站。单击下面的链接验证您的帐户”+
“
”+ HttpContext.Current.Request.Url.Host }; message.To.Add(新邮件地址(“makovetskiyd@yahoo.co.uk","某名"),; message.IsBodyHtml=true; SmtpClient=新的SmtpClient(); client.enablesl=true; 客户端。发送(消息); 重定向(“checkyourmail.aspx”);

HttpContext.Current.Request.Url.Host
函数在电子邮件中显示为“localhost”。但我需要它看起来像一个真正的链接。我按下它,它就会重定向我。我使用visual studio 2010

您似乎正在使用

HttpContext.Current.Request.Url.Host

而不是
HttpContext.Current.Request.Url

对于您的本地开发环境,您将获得
localhost
,但当您将其部署到某个web服务器时,这将正确地将其自身更新为托管web服务器url

理想情况下,您应该有一些包含查询字符串的路径,然后在页面加载中有相应的代码来验证和使用查询字符串

例如:

<br/>"+HttpContext.Current.Request.Url.Host + @"/AccountValidate.aspx?id=SomeId"

<强>要考虑的重要点是,您需要知道在激活链接上单击哪个用户,因此查询字符串将被使用。/P>


希望有帮助

我有点困惑,但我还是会尽力帮忙的

我认为你要做的只是在你的电子邮件中加入一个链接,用户可以点击并访问你的网站

要做到这一点,您需要在电子邮件中包含指向您站点的锚定标记,而不是使用主机地址,您需要包含请求。Url,如下所示:

String.Format("<a href=\"{0}\">click here</a>",HttpContext.Current.Request.Url);
String.Format(“,HttpContext.Current.Request.Url”);

如果使用Outlook 2010,请使用/HTML转到主页/新项目/电子邮件

然后突出显示希望显示为链接的单词,用鼠标右键单击并选择Hyperlinlk。这将打开一个框,您可以在其中选择链接应指向的位置


一旦选择正确,您的单词将显示为带有更改颜色和下划线的链接。

您似乎在本地运行该网站(因此
localhost
)。尝试远程操作,或使用正确的主机名。因此,我需要在将站点放到主机上后修改代码?我相信您收到了对此答案的否决票,因为OP正在寻找一种编程策略。他们并没有试图通过鼠标和键盘来使用应用程序,而是通过代码库。
string id = Convert.ToString(Request.QueryString["id"]);
if(!string.IsNullOrEmpty(id))
... //Code here to inform the user of successful activation
String.Format("<a href=\"{0}\">click here</a>",HttpContext.Current.Request.Url);