.NET Core 邮件发送使用库MailKit

安装库MailKit

 发送邮件

复制代码
 /// <summary>
 /// 发送邮件
 /// </summary>
 /// <param name="subject">邮件主题</param>
 /// <param name="body">邮件内容</param>
 public void SendEmail(string subject, string body)
 {
     var message = new MimeMessage();
     message.From.Add(new MailboxAddress("邮箱的名称", "your@example.com"));//邮箱名称可以随意自定义
     message.To.Add(new MailboxAddress("邮箱的名称", "接收方@exam.com"));
     message.Subject = subject;

     var bodyBuilder = new BodyBuilder
     {
TextBody = body //HtmlBody
= body }; message.Body = bodyBuilder.ToMessageBody(); using (var smtpClient = new SmtpClient()) { smtpClient.Connect("smtp.qq.com", 465, true); // 服务器地址、端口、加密方式 ssl加密端口465、587 以QQ邮箱为例,具体的服务器地址去对应邮箱官网获取 smtpClient.Authenticate("your@example.com", "授权码"); // 邮箱登录凭证 smtpClient.Send(message); smtpClient.Disconnect(true); } }
复制代码

注:

关于授权码,需要去发送方邮箱的官网获取授权码,以QQ邮箱为例,登录QQ邮箱进入设置=》账号=》账号安全=》开启服务,跟着指示向下执行,就很可以获取授权码

 

 

 

 

收取邮件

复制代码
 /// <summary>
 /// 收取邮件
 /// </summary>
 /// <returns></returns>
 public async Task ReceiveEmailAsync()
 {
     using (var client=new ImapClient())
     {
         await client.ConnectAsync("imap.qq.com", 993,true);//ssl 端口993 以QQ邮箱为例
         await client.AuthenticateAsync("your@qq.com", "授权码");
         var inbox = client.Inbox;
         await inbox.OpenAsync(MailKit.FolderAccess.ReadOnly);
         foreach(var uid in await inbox.SearchAsync(SearchQuery.NotSeen))//此处获取未查看的邮件
         {
             var message=await inbox.GetMessageAsync(uid);
             Console.WriteLine($"Subject:{message.Subject}");
         }
         await client.DisconnectAsync(true);
     }
 }
复制代码
注:根据需求向inbox.SearchAsync()中传入需要查看邮件的分类
posted @   流年sugar  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示