小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
近期服务器不知道是资源不够用还是啥原因老是自动重启,重启后有些服务没有自动运行起来导致部分系统数据异常,为了能正常监控,boss让每天下班前把当天的数据发一份邮件给他。为止在数据计算服务中需要加上邮件发送功能。 二话不说就开干,作为老程序员,之前都是用SmtpClient直接写的,这次也不例外,可是,万万没想到,当我打开这个时发现了微软居然弃用了SmtpClient 。
好在微软还是推荐了继承人MailKit。既然微软推荐了,那就正好更新下。
Mailkit是一个开源项目,作者的目标是使其成为 .NET 的最佳电子邮件框架。它支持SMTP、POP3 和 IMAP协议。 github.com/jstedfast/M…
配置邮箱
因为发送邮件需要开启smtp,这里我就直接用我的qq邮箱了。 在qq邮箱设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务下开启POP3/SMTP服务和IMAP/SMTP服务,我这里已经开启了就不用开启,具体开启的方法就根据提示一步步来就行。
安装Mailkit
1、直接同Nuget命令安装
Install-Package MailKit
2、也可以在Nuget解决方案中搜索,选择对应的安装即可
代码实现
代码实现很简单
public void SendEmail()
{
MimeMessage message = new MimeMessage();
//发件人
message.From.Add(new MailboxAddress("bc小平", "[email protected]"));
//收件人
message.To.Add(new MailboxAddress("boss", "[email protected]"));
//标题
message.Subject = "测试标题";
//生成一个支持Html的TextPart
TextPart body = new TextPart(TextFormat.Html)
{
Text = "<h1>测试内容</h1>"
};
//创建Multipart添加附件
Multipart multipart = new Multipart("mixed");
multipart.Add(body);
//正文
message.Body = multipart;
using (SmtpClient client = new SmtpClient())
{
//Smtp服务器
client.Connect("smtp.qq.com", 587, false);
//登录
client.Authenticate("[email protected]", "xxx");
//发送
client.Send(message);
//断开
client.Disconnect(true);
Console.WriteLine("发送邮件成功");
}
}
复制代码
本地测试ok。
部署服务器后正常,注意记得开放587端口哦。