ASP.NET核心标识未发送电子邮件
在我的ASP.NET核心标识未发送电子邮件,asp.net,asp.net-core,asp.net-core-identity,Asp.net,Asp.net Core,Asp.net Core Identity,在我的Startup.cs中我有 services.AddTransient<Microsoft.AspNetCore.Identity.UI.Services.IEmailSender, EmailSender>(i => new EmailSender( Configuration["EmailSender:Host"], Configuration.GetValue<int>("EmailSender:Port"),
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"]
));
我正在运行smtp4dev
当我尝试注册用户或忘记密码时,不会发送电子邮件。在sendmailasync
中的断点未命中
我不明白我需要做什么才能让这个东西发送电子邮件。
你…吗?如果是这样,你能告诉我是什么吗?
这是否有文档记录?请添加您使用EmailSender类的位置和方式的代码段,因为您已经要求提供文档,如果您确定没有发送用于电子邮件验证和密码重置的电子邮件,请忽略此建议,您可以参考此文档。但是,如果您的电子邮件被发送用于电子邮件验证,但没有被发送用于密码重置,那么请继续阅读 你的邮件发送者的构造器中的断点被击中了吗?如果是这样,请确保您尝试重置密码的用户具有已验证的电子邮件地址。如果电子邮件地址未经验证,Identity将不会发送任何其他电子邮件通知 或者,暂时禁用已确认的帐户,查看您的电子邮件是否正在发送
services.AddDefaultIdentity<ApplicationUser>(options =>
{
options.SignIn.RequireConfirmedAccount = false;
})
services.AddDefaultIdentity(选项=>
{
options.SignIn.RequireConfirmedAccount=false;
})
你确定要在某个地方注入IEmailSender并调用SendEmailAsync方法吗?我有一个IEmailSender
并在Startup.cs
中注册了它,但代码没有命中,也没有发送电子邮件。我不明白出了什么问题。你应该手动插入代码来发送电子邮件,它不会自动在黑暗中显示,但你使用的是什么版本的Microsoft.NET.Sdk.Functions
?检查你的csproj文件?版本3.04中存在一个已知错误,它不会命中startup.cs文件。如果是你,降级到3.03或3。05@YegorAndrosov当用户单击重置密码时,Microsoft.AspNetCore.Identity.UI
是否自动调用iemailssender
?如果不是,为什么ui会说“请检查您的电子邮件以重置密码?”?在该文档中:他们究竟是如何创建数据库表的?他们不需要创建迁移并运行updatedatabase
>数据库种子时创建管理员帐户。这不是真的。这是什么Seed
方法?他们不说它在哪个类和文件中,这真的很烦人。我没有(我做错了什么?),也不知道应该放在哪里。@RichardBarraclough您的问题是关于电子邮件发件人的,本文对此进行了讨论。我确认,只有在dbo.AspNetUsers中的EmailConfirm字段设置为True时,密码重置才会发送。如果该值为false,则在使用DefaultUI时不会发送重置电子邮件。下面是代码():if(user==null | |!(wait _userManager.IsEmailConfirmedAsync(user)){//不要透露用户不存在或未确认返回重定向页面(“./ForgotPasswordConfirmation”);}
services.AddDefaultIdentity<ApplicationUser>(options =>
{
options.SignIn.RequireConfirmedAccount = false;
})