首页 > 代码库 > .Net Core邮件发送之MailKit

.Net Core邮件发送之MailKit

一 、在.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("发送邮件成功");
}

 

更多:

.NetCore中EFCore for MySql整理

Asp.Net Core WebAPI入门整理(三)跨域处理

Asp.Net Core中Json序列化处理整理

.Net Core邮件发送之MailKit