【发布时间】:2019-02-21 09:57:20
【问题描述】:
在 Asp.net 中,我通常可以使用以下代码发送电子邮件:
using (var smtp = new SmtpClient())
{
await smtp.SendMailAsync(mailMessage);
}
通过 web.config 中提供的 smtp 设置,SmtpClient 会自动使用这些设置。 web.config 配置部分如下所示:
<mailSettings>
<smtp deliveryMethod="Network">
<network host="myHost" port="25" userName="myUsername" password="myPassword" defaultCredentials="false" />
</smtp>
</mailSettings>
是否可以在 dotnet core 2.0 应用程序的 appSettings.json 文件中进行配置,然后供SmtpClient 使用,类似于 Asp.net?
【问题讨论】:
-
看看stackoverflow.com/questions/41407221/…这应该回答你的问题
-
首先,不要使用 SmptClient。其次,.NET Core 中的任何 XML 或 JSON 部分都没有特殊含义。
appsettings.json也没有什么特殊含义,只是WebHostBuilder使用的默认文件名。 -
为了解释
don't use SmptClient.,该类的文档本身解释了it's obsolete,仅出于兼容性原因即使在完整框架中并且您should useMailKitinstead -
使用您想要的任何 SMTP 服务的正确方法是从 .NET 配置系统,从您配置的任何来源加载其配置。它可能是您的
json文件中名为"MyMailSettings"的部分。其次,您应该将该类注册为服务,而不是手动实例化它。 -
检查Using MailKit To Send And Receive Email In ASP.net Core。它展示了如何从 JSON 加载设置,如何创建和注册
IEmailService