问题原因是ASP.NET Core应用程序默认不支持在IIS SMTP服务器上发送电子邮件。解决此问题的解决方案是使用第三方SMTP库,例如MailKit库。
以下是使用MailKit库在ASP.NET Core应用程序中发送电子邮件的示例代码:
首先,安装MailKit库:
Install-Package MailKit
然后,在Startup.cs文件的ConfigureServices方法中配置MailKit:
using MailKit;
using MailKit.Net.Smtp;
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// Configure email sending options with MailKit.
services.AddMailKit(config =>
config.UseSmtp("smtp.gmail.com", 587)
.WithCredentials("your-email@gmail.com", "your-email-password")
.WithSSL(false)
.WithTimeout(10000)
);
}
现在,我们可以在应用程序中使用IMailService接口来发送邮件:
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using MimeKit;
public class HomeController : Controller
{
private readonly ILogger _logger;
private readonly IMailService _mailService;
public HomeController(ILogger logger, IMailService mailService)
{
_logger = logger;
_mailService = mailService;
}
public IActionResult Index()
{
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Sender Name", "sender@example.com"));
message.To.Add(new MailboxAddress("Receiver Name", "receiver@example.com"));
message.Subject = "Test Email";
message.Body = new TextPart("plain")
{
Text = "This is a test email from ASP.NET Core App using MailKit."
};
_mailService.Send(message);
return View();
}
}
以上代码使用IMailService接口中的Send方法发送MimeMessage对象。
现在,我们就可以使用MailKit库在ASP.NET Core应用程序中发送电子邮件了。