asp.net - 如何在 ASP.NET Core 中为电子邮件创建动态链接

标签 asp.net asp.net-core mail-sender

我想问一下。 我使用 asp.net core 2.0 构建了一个简单的电子邮件发件人,我想发送一封带有链接的电子邮件,以将收件人重定向到我的网页,如电子邮件身份验证,但我不知道如何制作回调 URL。

我用:

<a href='https://"+Request.Scheme+"/Users/Userrole'>Click Here</a>

但电子邮件中的链接是 http:/Users/Userrole

请告诉我如何获取我页面的动态 URL,因为使用 Localhost:443xx/User/Userrole 不优雅并且在我的本地计算机上运行时不起作用

编辑, 执行此操作的非常简单的方法是 <a href='https://"+this.Request.Host+"/Users/Userrole'>Click Here</a>

感谢 FrustatedDeveloper 的回答

最佳答案

Asp.Net 核心

在 Asp.Net Core 中,您可以使用以下方法获取 URL:

var url = $"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}";
var link = $"<a href='{url}'>Click here</a>";

如果你需要获取查询字符串那么你可以使用:

var queryString = Context.Host.QueryString;

请检查以下资源:HttpRequest .

如果您包含using Microsoft.AspNetCore.Http.Extensions,那么您还可以使用:

var url = httpContext.Request.GetEncodedUrl();

或者

var url = httpContext.Request.GetDisplayUrl();

原答案(Asp.Net/MVC框架)

要创建动态 URL,您可以使用 UrlHelper @Url.Action("ActionName", "ControllerName") 以及域的 Request.Url.AuthorityRequest.Url.Scheme对于方案(使用 http 或 https)。

var url = $"{Request.Url.Scheme}://{Request.Url.Authority}{@Url.Action("UserRole","Users")}";
var link = $"<a href='{url}'>Click here</a>";

假设您的站点有一个域www.example.com,这将产生如下 URL:

https://www.example.com/users/userrole

以上使用string interpolation组合字符串变量。

关于asp.net - 如何在 ASP.NET Core 中为电子邮件创建动态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58092908/

相关文章:

Java邮件发送器发送重复的电子邮件

linux - 使用 linux mail 命令自动发送邮件时如何更改发件人姓名(不是电子邮件地址)?

email - SPF + DKIM 通过和 DMARC 失败

c# - '/' 应用程序中的服务器错误

c# - LinqDataSource - 你能限制返回记录的数量吗?

c# - ASP.Net Core 401 中的 SignalR 未经授权

ASP.NET 5 MVC 6 中的本地化

asp.net - 使 ASP.NET 应用程序在移动浏览器上可见

javascript - 根据h1动态更新一个html元素值

asp.net-core - 带两个参数的 MVC6 属性路由