.net core之邮件发送

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

近期服务器不知道是资源不够用还是啥原因老是自动重启,重启后有些服务没有自动运行起来导致部分系统数据异常,为了能正常监控,boss让每天下班前把当天的数据发一份邮件给他。为止在数据计算服务中需要加上邮件发送功能。 二话不说就开干,作为老程序员,之前都是用SmtpClient直接写的,这次也不例外,可是,万万没想到,当我打开这个时发现了微软居然弃用了SmtpClient

image.png

好在微软还是推荐了继承人MailKit。既然微软推荐了,那就正好更新下。

Mailkit是一个开源项目,作者的目标是使其成为 .NET 的最佳电子邮件框架。它支持SMTP、POP3 和 IMAP协议。 github.com/jstedfast/M…

配置邮箱

因为发送邮件需要开启smtp,这里我就直接用我的qq邮箱了。 在qq邮箱设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务下开启POP3/SMTP服务和IMAP/SMTP服务,我这里已经开启了就不用开启,具体开启的方法就根据提示一步步来就行。

image.png

安装Mailkit

1、直接同Nuget命令安装

Install-Package MailKit

2、也可以在Nuget解决方案中搜索,选择对应的安装即可

image.png

代码实现

代码实现很简单

        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端口哦。

猜你喜欢

转载自juejin.im/post/7016715712764837924