asp.net - ASP.NET Core 身份不发送电子邮件
问题描述
在我的Startup.cs
我有
services.AddTransient<Microsoft.AspNetCore.Identity.UI.Services.IEmailSender, EmailSender>(i =>
new EmailSender(
Configuration["EmailSender:Host"],
Configuration.GetValue<int>("EmailSender:Port"),
Configuration.GetValue<bool>("EmailSender:EnableSSL"),
Configuration["EmailSender:UserName"],
Configuration["EmailSender:Password"]
));
我有一堂课
public class EmailSender : IEmailSender
{
/* snip */
public Task SendEmailAsync(string email, string subject, string htmlMessage)
{
var client = new SmtpClient(_Host, _Port)
{
Credentials = new NetworkCredential(_UserName, _Password), EnableSsl = _EnableSSL
};
return client.SendMailAsync(
new MailMessage(_UserName, email, subject, htmlMessage) { IsBodyHtml = true }
);
}
}
我在跑步smtp4dev
。
当我尝试注册用户或忘记密码时,不会发送电子邮件。在断点SendEmailAsync
处没有命中。
我不明白我需要做什么才能让这个东西发送电子邮件。你?如果是这样,你能告诉我它是什么吗?这是在某处记录的吗?
解决方案
如果您确定电子邮件验证和密码重置均未发送,请忽略此建议。但是,如果您的电子邮件被发送用于电子邮件验证,但没有被发送用于密码重置,那么请继续阅读。
IEmailSender 的构造函数中的断点是否被命中?如果是这样,请确保您尝试为其重置密码的用户拥有经过验证的电子邮件地址。如果未验证电子邮件地址,Identity 将不会发送任何其他电子邮件通知。
或者,暂时禁用已确认的帐户并查看您的电子邮件是否正在发送。
services.AddDefaultIdentity<ApplicationUser>(options =>
{
options.SignIn.RequireConfirmedAccount = false;
})
推荐阅读
- javascript - 每次我们调用函数时,它都应该返回旧函数项 + 新函数项
- swift - 是否可以制作可重用的代码来添加背景图像?如果是这样,怎么做?
- dns - 单个服务器托管多个域的最佳实践 DNS 配置
- laravel - 创建一个视图来管理权限 laravel
- javascript - Vue 计算数组追加值而不是重写
- angular - 角度如何使用一个ts文件中的两个html文件
- flutter - Flutter:如何仅在 FutureBuilder 结束后显示浮动操作按钮
- javascript - NodeJs 要求未定义
- html - 浏览器在打开下拉列表或单击列表项时抖动
- php - 如何为 laravel 制作控制器?