Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET核心标识未发送电子邮件_Asp.net_Asp.net Core_Asp.net Core Identity - Fatal编程技术网

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;
                })