C# 在电子邮件中发送链接

C# 在电子邮件中发送链接,c#,asp.net,email,smtp,C#,Asp.net,Email,Smtp,大家早上好 我目前正在尝试在用户填写表单后发送电子邮件。该电子邮件包含指向激活页面的链接。我生成链接的代码如下: mailMessage.Body = "<h1>Please click the link below to activate your account</h1><br /><a href = '" + HttpContext.Current.Request.Url.AbsoluteUri.Replace("Activation.aspx",

大家早上好

我目前正在尝试在用户填写表单后发送电子邮件。该电子邮件包含指向激活页面的链接。我生成链接的代码如下:

mailMessage.Body = "<h1>Please click the link below to activate your account</h1><br /><a href = '" + HttpContext.Current.Request.Url.AbsoluteUri.Replace("Activation.aspx", "Activation.aspx?userId=" + userId) + "'>Click here to activate your account.</a>";

我做错了什么?如生成链接的代码所示,我正试图以Activation.aspx的名称访问一个页面,但这并没有发生。任何建议都很好。提前感谢。

您可能正在运行端口52621的本地开发服务器,这就是您获得上述URL的原因

当你发布你的项目时,它看起来会不一样,很可能是在某个领域运行,比如

https://www.example.com/RegisterUser.aspx
如果要从发布状态获取链接,一种解决方案是手动对其进行编码:

mailMessage.Body = "<h1>Please click the link below to activate your account</h1><br /><a href='https://www.example.com/Activation.aspx?userId=" + userId + "'>Click here to activate your account.</a>";
mailMessage.Body=“请单击下面的链接激活您的帐户
”;
不过我不喜欢那个

如果您有多个项目将发布到的环境,则可以根据当前生成配置将其域写入web.config文件,如下所述:


您很可能正在端口52621运行本地开发服务器,这就是您获得上述URL的原因

当你发布你的项目时,它看起来会不一样,很可能是在某个领域运行,比如

https://www.example.com/RegisterUser.aspx
如果要从发布状态获取链接,一种解决方案是手动对其进行编码:

mailMessage.Body = "<h1>Please click the link below to activate your account</h1><br /><a href='https://www.example.com/Activation.aspx?userId=" + userId + "'>Click here to activate your account.</a>";
mailMessage.Body=“请单击下面的链接激活您的帐户
”;
不过我不喜欢那个

如果您有多个项目将发布到的环境,则可以根据当前生成配置将其域写入web.config文件,如下所述:


AbsoluteUri的内容是什么?您显然是从RegisterUser.aspx页面获得了该Uri。此外,您可能希望将“?userId=…”部分附加到AbsoluteUri,而不是替换它的一部分,因为Uri(在您检索它之后)可能会以“Activation.aspx”结尾。这里有一个到的内联链接。AbsoluteUri的内容是什么?您显然是从RegisterUser.aspx页面获取Uri的。此外,您可能希望将“?userId=…”部分附加到AbsoluteUri中,而不是替换它的一部分,因为Uri(在您检索它之后)可能会以“Activation.aspx”结尾。这是指向的内联链接。谢谢您的回答。最后,我采用了不同的验证方法。无论如何,我已经接受了这个答案,因为你给了我一些思考的东西。谢谢你的回答。最后,我采用了不同的验证方法。无论如何,我已经接受了这个答案,因为你给了我一些思考的东西。非常感谢。