一 、在.Net Core中MailKit中提供了邮件的基础封装
它支持跨平台,并且支持 IMAP, POP3, SMTP 等协议
Nuget命令:
Install-Package MailKit
官方Git地址:https://github.com/jstedfast/MailKit
注:
1.目前版本v1.16.1
2.SmtpClient中处理编码有些问题,对于服务器的异常相应中文显示乱码
二、使用实例:
MimeMessage message = new MimeMessage(); //发件人 message.From.Add(new MailboxAddress("张三丰", "xxx@qq.com")); //收件人 message.To.Add(new MailboxAddress("测试", "xxx@163.com")); //标题 message.Subject = "测试标题内容"; //产生一个支持HTml 的TextPart TextPart body = new TextPart(TextFormat.Html) { Text = "<h1>测试内容</h1>" }; //创建Multipart添加附件 Multipart multipart = new Multipart("mixed"); multipart.Add(body); //附件 string absolutePath = @"F:\桌面\新建文件夹\mysql1.sql"; MimePart attachment = new MimePart() { //读取文件,只能用绝对路径 ContentObject = new ContentObject(File.OpenRead(absolutePath), ContentEncoding.Default), ContentDisposition = new ContentDisposition(ContentDisposition.Attachment), ContentTransferEncoding = ContentEncoding.Base64, //文件名字 FileName = Path.GetFileName(absolutePath) }; multipart.Add(attachment); //正文内容,发送 message.Body = multipart; //message.Body = body; using (SmtpClient client = new SmtpClient()) { //Smtp服务器 client.Connect("smtp.qq.com", 587, false); //登录,发送 //特别说明,对于服务器端的中文相应,Exception中有编码问题,显示乱码了 client.Authenticate("xxx@qq.com", "xxx"); client.Send(message); //断开 client.Disconnect(true); Console.WriteLine("发送邮件成功"); }
关于邮件中待手机号的识别测试如下:
(特别说明:目前没找到,客户端发送qq群邮件的方法。 暂时还是只发给个人。 )
MimeMessage message = new MimeMessage(); //发件人 message.From.Add(new MailboxAddress("xxx@qq.com")); //收件人 message.To.Add(new MailboxAddress("xxxx@qq.com")); //标题 message.Subject = "测试"; //内容 TextPart body = new TextPart(TextFormat.Html) { //a标签正常的话会被 客户端屏蔽掉 //Text = "<h1>测试内容</h1> <a href='tel:15154123615'>15154123615</a>" //a标签不正常关闭,客户端可以一键拨打(支持在IOS的QQ端,QQ邮箱App端 原因:这两个客户端对于手机号自动识别) //在微信提醒客户端中就不支持 Text = "<h1>测试内容</h1> <a href='tel:15154123615'>15154123615</tel>" }; message.Body = body; using (SmtpClient client = new SmtpClient()) { //smtp服务器 client.Connect("smtp.qq.com", 587, false); //登录账号 client.Authenticate("xxxx@qq.com", "password"); client.Send(message); client.Disconnect(true); Console.WriteLine("邮件发送成功"); }
更多:
本博客Android APP 下载 |
![]() |
支持我们就给我们点打赏 |
![]() |
支付宝打赏 支付宝扫一扫二维码 |
![]() |
微信打赏 微信扫一扫二维码 |
![]() |
如果想下次快速找到我,记得点下面的关注哦!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!