dotnet core 2.0中appSettings.json中的SMTP设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dotnet core 2.0中appSettings.json中的SMTP设置相关的知识,希望对你有一定的参考价值。
在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?
答案
如果您坚持使用System.Net.Mail.SmtpClient,则可以这样做:
appsettings.json
{
"Smtp": {
"Server": "mail.whatever.com",
"Port": 25,
"FromAddress": "yourfromemail@whatever.com"
},
}
码:
public async Task SendEmailAsync(string email, string subject, string htmlMessage)
{
MailMessage message = new MailMessage();
message.Subject = subject;
message.Body = htmlMessage;
message.IsBodyHtml = true;
message.To.Add(email);
string host = _config.GetValue<string>("Smtp:Server", "defaultmailserver");
int port = _config.GetValue<int>("Smtp:Port", 25);
string fromAddress = _config.GetValue<string>("Smtp:FromAddress", "defaultfromaddress");
message.From = new MailAddress(fromAddress);
using (var smtpClient = new SmtpClient(host, port))
{
await smtpClient.SendMailAsync(message);
}
}
其中_config
是IConfiguration
的一个实现,它被注入到SendEmailAsync
方法所在的类中。
但是,由于它已经过时,因此探索上述评论中提到的其他方法可能会更好。
以上是关于dotnet core 2.0中appSettings.json中的SMTP设置的主要内容,如果未能解决你的问题,请参考以下文章
为 HTTPS 配置 ASP.NET Core 2.0 Kestrel
现在在.net core 2.0当中,有没有连接MySQL数据库的方法
七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问