在ASP.NET Core中,如果身份验证未发送电子邮件,则可以使用以下代码示例来解决该问题:
"EmailSettings": {
"SmtpServer": "your_smtp_server",
"Port": 587,
"UserName": "your_username",
"Password": "your_password"
}
public interface IEmailSender
{
Task SendEmailAsync(string email, string subject, string message);
}
public class EmailSender : IEmailSender
{
private readonly EmailSettings _emailSettings;
public EmailSender(IOptions emailSettings)
{
_emailSettings = emailSettings.Value;
}
public Task SendEmailAsync(string email, string subject, string message)
{
var client = new SmtpClient(_emailSettings.SmtpServer, _emailSettings.Port)
{
UseDefaultCredentials = false,
Credentials = new NetworkCredential(_emailSettings.UserName, _emailSettings.Password),
EnableSsl = true
};
var mailMessage = new MailMessage
{
From = new MailAddress(_emailSettings.UserName),
Subject = subject,
Body = message,
IsBodyHtml = true
};
mailMessage.To.Add(email);
return client.SendMailAsync(mailMessage);
}
}
public void ConfigureServices(IServiceCollection services)
{
// ...
services.Configure(Configuration.GetSection("EmailSettings"));
services.AddTransient();
// ...
}
private readonly IEmailSender _emailSender;
public YourController(IEmailSender emailSender)
{
_emailSender = emailSender;
}
public async Task SendEmail()
{
// ...
await _emailSender.SendEmailAsync(email, subject, message);
// ...
}
通过以上步骤,您就可以在ASP.NET Core中发送电子邮件进行身份验证了。请确保您的电子邮件设置正确,并替换实际的SMTP服务器、用户名和密码。