在 ASP.NET 中,您可以在 App_Start 文件夹中的 IdentityConfig.cs 中为 Identity 配置电子邮件,按照我自己的回答此处。
ASP.NET Core Identity现在是一个库。并且默认情况下不包含此 IdentityConfig.cs 文件。那么我如何配置电子邮件发送,例如注册确认?
Loa*_*ron 13
ASP.NET Core 2 很大程度上依赖于依赖注入。身份库的 RegisterModel(以及其他依赖电子邮件的模型)具有以下字段:
private readonly IEmailSender _emailSender;
Run Code Online (Sandbox Code Playgroud)
你所要做的就是使用Startup.cs的ConfigureServices方法来注入你自己实现的IEmailSender:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddTransient<IEmailSender, EmailSender>();
}
Run Code Online (Sandbox Code Playgroud)
您可以在项目中名为 Services 的文件夹中定义此 EmailSender 类:
一个可能的实现是:
using Microsoft.AspNetCore.Identity.UI.Services;
using System.Net;
using System.Net.Mail;
using System.Threading.Tasks;
namespace YourProject.Services
{
public class EmailSender : IEmailSender
{
public Task SendEmailAsync(string email, string subject, string htmlMessage)
{
SmtpClient client = new SmtpClient
{
Port = 587,
Host = "smtp.gmail.com", //or another email sender provider
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential("your email sender", "password")
};
return client.SendMailAsync("your email sender", email, subject, htmlMessage);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11144 次 |
| 最近记录: |