如何在没有凭据的情况下在 .net Core 中本地发送电子邮件

How to send email locally in .net core without credentials

我想测试在我的 Web 应用程序中发送电子邮件,该应用程序使用 .net core 3 和 C#。

问题是我在阻止端口 587(目前)的公司网络上。

我看到一篇文章说你可以使用这个

mailClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;

但我使用的是未针对 IIS 配置的 .net 核心主机,所以我收到错误 "IIS delivery is not supported"。

IIS 是测试本地发送电子邮件的唯一方法吗?

您可以指定选项SmtpDeliveryMethod.SpecifiedPickupDirectory 将从 属性 SmtpClient.PickupDirectoryLocation

中指定的目录中提取邮件

您可以查看以下内容的参考页:

例如:

var client = new SmtpClient {
  DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory,
  PickupDirectoryLocation = @"c:\myMailFolder"
};

您可以 运行 最小起订量(假)SMTP 服务器作为您应用程序的一部分。电子邮件不会发送给收件人,而是存储在内存中以便于检查。

我是 SmtpMoq.NET for .NET Core that does exactly that. Please check here and here 的作者,详细了解如何使用它。

额外的好处是您可以自动化集成测试并验证电子邮件是否正确发送。

希望对您有所帮助。