很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。

2026-03-30 15:191阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1835个文字,预计阅读时间需要8分钟。

很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。

(文章目录)+ 前言

1.MailKit简介

MailKit是.NET中最流行且功能强大的电子邮件处理框架之一,下面简单介绍MailKit的使用方式(以IMAP为例)。

2. MailKit功能安全+SASL身份验证+支持CRAM-MD5、DIGEST-MD5等

(文章目录)


前言

1.MailKit简介

MailKit是最流行且最强大的.NET邮件处理框架之一,下面为大家简单介绍MailKit的使用方式(IMAP为例)

2.MailKit功能

  • 安全

    • SASL 身份验证

      • 支持 CRAM-MD5、DIGEST-MD5、LOGIN、NTLM、OAUTHBEARER、PLAIN、SCRAM-SHA-1、SCRAM-SHA-256、SCRAM-SHA-512 和 XOAUTH2 机制。
    • 支持 S/MIME v3.2。

    • 支持 OpenPGP。

    • 支持 DKIM 签名。

    • 支持 ARC 签名。

  • 短信客户端

    • 支持 SSL 和 TLS。

    • 支持 STARTTLS、SIZE、DSN、8BITMIME、pipelining、binarymime 和 SMTPUTF8 扩展。

  • POP3 客户端

    • 支持 SSL 和 TLS。

    • 支持 STLS、UIDL、PIPELINING、UTF8 和 LANG 扩展。

  • IMAP 客户端

    • 支持 SSL 和 TLS。

    • 支持 ACL、配额、文字+、空闲、命名空间、ID、子项、登录禁用、启动、多追加、取消选择、UIDPLUS、CONDSTORE、电子搜索、SASL-ID、压缩、内、启用、QRESYNC、排序、线程、注释、列表扩展、电子排序、元数据、元数据服务器、通知、过滤器、列表状态、排序=显示、特殊用途、创建特殊用途、搜索=模糊、移动、UTF8=接受、UTF8=仅、文字-、附加限制、状态=大小、对象ID、替换、保存、XLIST 和 Google Mail (X-GM-EXT-1) 扩展名。

  • MIME 解析器

    • 灵活:允许覆盖任何 MIME 类型的默认类。

    • 高性能:比市场上任何其他 .NET MIME 解析器都快。性能甚至可以与最快的C++解析器相媲美。

    • 强大:轻松处理各种损坏的 MIME 格式。

  • 所有可能阻止的API都允许通过取消令牌取消。

  • 所有执行 I/O 的 API 都有异步变体。

  • 消息的客户端排序和线程处理。

  • 支持 .NET 4.5、.NET 4.6、.NET 4.7、.NET 4.8、.NET 5.0、.NETStandard 2.0、Xamarin.Android、Xamarin.iOS、Windows Phone 8.1 等。

Github网址:github.com/jstedfast/MailKit

官方网址:www.mimekit.net/docs/html/Introduction.htm

3.SMTP协议

SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。

邮箱类型 POP3服务器 SMTP服务器 pop.qq.com(端口:110) smtp.qq.com(端口:25) pop3.sina.com.cn(端口:110) smtp.sina.com.cn(端口:25) pop3.vip.sina.com (端口:110) smtp.vip.sina.com (端口:25) pop3.sohu.com(端口:110) smtp.sohu.com(端口:25) pop.126.com(端口:110) smtp.126.com(端口:25) POP.139.com(端口:110) SMTP.139.com(端口:25) pop.163.com(端口:110) smtp.163.com(端口:25) pop.exmail.qq.com (SSL启用 端口:995) smtp.exmail.qq.com(SSL启用 端口:587/465) pop.mail.yahoo.com smtp.mail.yahoo.com pop.mail.yahoo.com.cn(端口:995) smtp.mail.yahoo.com.cn(端口:587) pop3.live.com(端口:995) smtp.live.com(端口:587) pop.gmail.com(SSL启用端口:995) smtp.gmail.com(SSL启用 端口:587) pop3.263.net(端口:110) smtp.263.net(端口:25) pop.263.net.cn(端口:110) smtp.263.net.cn(端口:25) pop.21cn.com(端口:110) smtp.21cn.com(端口:25) POP.foxmail.com(端口:110) SMTP.foxmail.com(端口:25) pop.china.com(端口:110) smtp.china.com(端口:25) pop.tom.com(端口:110) smtp.tom.com(端口:25)

一、使用MailKit使用SMTP协议进行邮件发送

1.安装MailKit程序包

2.发送操作文件代码

本代码以.NET 7为主

using MailKit.Net.Smtp; using MimeKit; using MimeKit.Utils; namespace ConsoleTest { public class MailKitHelper { /// <summary> /// 创建一个简单的带有图片附件的邮件消息 /// </summary> /// <returns></returns> public static MimeMessage CreateSimpleMessageOfImageAttachments() { var message = new MimeMessage(); message.From.Add(new MailboxAddress("愚公搬代码", "2528877987@qq.com")); message.To.Add(new MailboxAddress("愚公搬代码", "2528877987@qq.com")); message.Subject = "MailKit主题"; var body = new TextPart("plain") { Text = $"MailKit邮件发送测试" }; //创建带有图片附件的内容 string imgPath = @"C:\Users\Happy\Pictures\Saved Pictures\2d0e6f4495ee9cab920b2bdaeb155e37.jpeg"; var attachment = new MimePart("image", "jpeg") { Content = new MimeContent(File.OpenRead(imgPath), ContentEncoding.Default), ContentDisposition = new ContentDisposition(ContentDisposition.Attachment), ContentTransferEncoding = ContentEncoding.Base64, FileName = Path.GetFileName(imgPath) }; //创建混合容器合并邮件内容 var multipart = new Multipart("mixed"); multipart.Add(body); multipart.Add(attachment); message.Body = multipart; //message.Body = new TextPart("plain") //{ // Text = $"MailKit邮件发送测试" //}; return message; } /// <summary> /// 创建一个简单的带有图片附件的Html邮件消息 /// </summary> /// <returns></returns> public static MimeMessage CreateSimpleMessageOfImageHtmlAttachments() { var message = new MimeMessage(); message.From.Add(new MailboxAddress("愚公搬代码", "2528877987@qq.com")); //多个收件人 List<InternetAddress> AcceptEmailAddressList = new List<InternetAddress>(); AcceptEmailAddressList.Add(new MailboxAddress("愚公搬代码", "2528877987@qq.com")); AcceptEmailAddressList.Add(new MailboxAddress("愚公搬代码", "13960699696@139.com")); message.To.AddRange(AcceptEmailAddressList); message.Subject = "这是一个简单的带有图片附件的HTML邮件消息"; var builder = new BodyBuilder(); //注意:builder中TextBody与HtmlBody同时存在只会显示HtmlBody内容 //设置纯文本消息 builder.TextBody = $"1-这是一个纯文本内容\n"; //创建带有图片附件的内容且嵌套在Html模板中 string imgPath = @"C:\Users\Happy\Pictures\Saved Pictures\2d0e6f4495ee9cab920b2bdaeb155e37.jpeg"; var image = builder.LinkedResources.Add(imgPath); image.ContentId = MimeUtils.GenerateMessageId(); //设置html消息 string strHtml = $"<p style='color:red'><b >2-愚公搬代码 你好<b><br/></p>" + $"<p><i>这是我在进行测试简单带有图片附件的HTML邮件的测试<i><br/></p>" + $"<p><code>---愚公搬代码<code><br/></p>"; builder.HtmlBody = string.Format(strHtml); ////设置日历文件 //string calendarFile = @"C:\Users\CoffeeMilk\Pictures\MES软件开发启动会.ics"; //builder.Attachments.Add(calendarFile); //合并消息 message.Body = builder.ToMessageBody(); return message; } /// <summary> /// 发送邮件 /// </summary> /// <param name="needSendMessage">需要发送的邮件消息</param> public static void SendEmail(MimeMessage needSendMessage) { using (var smtpClient = new SmtpClient()) { smtpClient.MessageSent += (sender, args) => { Console.WriteLine("发送邮件状态:" + args.Response); }; smtpClient.ServerCertificateValidationCallback = (s, c, h, e) => true; smtpClient.Connect("smtp.qq.com", 25, MailKit.Security.SecureSocketOptions.StartTls); smtpClient.Authenticate("2528877987@qq.com", "ikuwynygvxtcdife");//这个不是qq密码,是开启imap时候的16位授权码 smtpClient.Send(needSendMessage); smtpClient.DisconnectAsync(true); } } } }

发送附件邮件

很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。

//创建邮件 var MimeMessage = ConsoleTest.MailKitHelper.CreateSimpleMessageOfImageAttachments(); //发送邮件 ConsoleTest.MailKitHelper.SendEmail(MimeMessage);

发送html邮件

//创建邮件 var MimeMessage = ConsoleTest.MailKitHelper.CreateSimpleMessageOfImageHtmlAttachments(); //发送邮件 ConsoleTest.MailKitHelper.SendEmail(MimeMessage);

本文共计1835个文字,预计阅读时间需要8分钟。

很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。

(文章目录)+ 前言

1.MailKit简介

MailKit是.NET中最流行且功能强大的电子邮件处理框架之一,下面简单介绍MailKit的使用方式(以IMAP为例)。

2. MailKit功能安全+SASL身份验证+支持CRAM-MD5、DIGEST-MD5等

(文章目录)


前言

1.MailKit简介

MailKit是最流行且最强大的.NET邮件处理框架之一,下面为大家简单介绍MailKit的使用方式(IMAP为例)

2.MailKit功能

  • 安全

    • SASL 身份验证

      • 支持 CRAM-MD5、DIGEST-MD5、LOGIN、NTLM、OAUTHBEARER、PLAIN、SCRAM-SHA-1、SCRAM-SHA-256、SCRAM-SHA-512 和 XOAUTH2 机制。
    • 支持 S/MIME v3.2。

    • 支持 OpenPGP。

    • 支持 DKIM 签名。

    • 支持 ARC 签名。

  • 短信客户端

    • 支持 SSL 和 TLS。

    • 支持 STARTTLS、SIZE、DSN、8BITMIME、pipelining、binarymime 和 SMTPUTF8 扩展。

  • POP3 客户端

    • 支持 SSL 和 TLS。

    • 支持 STLS、UIDL、PIPELINING、UTF8 和 LANG 扩展。

  • IMAP 客户端

    • 支持 SSL 和 TLS。

    • 支持 ACL、配额、文字+、空闲、命名空间、ID、子项、登录禁用、启动、多追加、取消选择、UIDPLUS、CONDSTORE、电子搜索、SASL-ID、压缩、内、启用、QRESYNC、排序、线程、注释、列表扩展、电子排序、元数据、元数据服务器、通知、过滤器、列表状态、排序=显示、特殊用途、创建特殊用途、搜索=模糊、移动、UTF8=接受、UTF8=仅、文字-、附加限制、状态=大小、对象ID、替换、保存、XLIST 和 Google Mail (X-GM-EXT-1) 扩展名。

  • MIME 解析器

    • 灵活:允许覆盖任何 MIME 类型的默认类。

    • 高性能:比市场上任何其他 .NET MIME 解析器都快。性能甚至可以与最快的C++解析器相媲美。

    • 强大:轻松处理各种损坏的 MIME 格式。

  • 所有可能阻止的API都允许通过取消令牌取消。

  • 所有执行 I/O 的 API 都有异步变体。

  • 消息的客户端排序和线程处理。

  • 支持 .NET 4.5、.NET 4.6、.NET 4.7、.NET 4.8、.NET 5.0、.NETStandard 2.0、Xamarin.Android、Xamarin.iOS、Windows Phone 8.1 等。

Github网址:github.com/jstedfast/MailKit

官方网址:www.mimekit.net/docs/html/Introduction.htm

3.SMTP协议

SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。

邮箱类型 POP3服务器 SMTP服务器 pop.qq.com(端口:110) smtp.qq.com(端口:25) pop3.sina.com.cn(端口:110) smtp.sina.com.cn(端口:25) pop3.vip.sina.com (端口:110) smtp.vip.sina.com (端口:25) pop3.sohu.com(端口:110) smtp.sohu.com(端口:25) pop.126.com(端口:110) smtp.126.com(端口:25) POP.139.com(端口:110) SMTP.139.com(端口:25) pop.163.com(端口:110) smtp.163.com(端口:25) pop.exmail.qq.com (SSL启用 端口:995) smtp.exmail.qq.com(SSL启用 端口:587/465) pop.mail.yahoo.com smtp.mail.yahoo.com pop.mail.yahoo.com.cn(端口:995) smtp.mail.yahoo.com.cn(端口:587) pop3.live.com(端口:995) smtp.live.com(端口:587) pop.gmail.com(SSL启用端口:995) smtp.gmail.com(SSL启用 端口:587) pop3.263.net(端口:110) smtp.263.net(端口:25) pop.263.net.cn(端口:110) smtp.263.net.cn(端口:25) pop.21cn.com(端口:110) smtp.21cn.com(端口:25) POP.foxmail.com(端口:110) SMTP.foxmail.com(端口:25) pop.china.com(端口:110) smtp.china.com(端口:25) pop.tom.com(端口:110) smtp.tom.com(端口:25)

一、使用MailKit使用SMTP协议进行邮件发送

1.安装MailKit程序包

2.发送操作文件代码

本代码以.NET 7为主

using MailKit.Net.Smtp; using MimeKit; using MimeKit.Utils; namespace ConsoleTest { public class MailKitHelper { /// <summary> /// 创建一个简单的带有图片附件的邮件消息 /// </summary> /// <returns></returns> public static MimeMessage CreateSimpleMessageOfImageAttachments() { var message = new MimeMessage(); message.From.Add(new MailboxAddress("愚公搬代码", "2528877987@qq.com")); message.To.Add(new MailboxAddress("愚公搬代码", "2528877987@qq.com")); message.Subject = "MailKit主题"; var body = new TextPart("plain") { Text = $"MailKit邮件发送测试" }; //创建带有图片附件的内容 string imgPath = @"C:\Users\Happy\Pictures\Saved Pictures\2d0e6f4495ee9cab920b2bdaeb155e37.jpeg"; var attachment = new MimePart("image", "jpeg") { Content = new MimeContent(File.OpenRead(imgPath), ContentEncoding.Default), ContentDisposition = new ContentDisposition(ContentDisposition.Attachment), ContentTransferEncoding = ContentEncoding.Base64, FileName = Path.GetFileName(imgPath) }; //创建混合容器合并邮件内容 var multipart = new Multipart("mixed"); multipart.Add(body); multipart.Add(attachment); message.Body = multipart; //message.Body = new TextPart("plain") //{ // Text = $"MailKit邮件发送测试" //}; return message; } /// <summary> /// 创建一个简单的带有图片附件的Html邮件消息 /// </summary> /// <returns></returns> public static MimeMessage CreateSimpleMessageOfImageHtmlAttachments() { var message = new MimeMessage(); message.From.Add(new MailboxAddress("愚公搬代码", "2528877987@qq.com")); //多个收件人 List<InternetAddress> AcceptEmailAddressList = new List<InternetAddress>(); AcceptEmailAddressList.Add(new MailboxAddress("愚公搬代码", "2528877987@qq.com")); AcceptEmailAddressList.Add(new MailboxAddress("愚公搬代码", "13960699696@139.com")); message.To.AddRange(AcceptEmailAddressList); message.Subject = "这是一个简单的带有图片附件的HTML邮件消息"; var builder = new BodyBuilder(); //注意:builder中TextBody与HtmlBody同时存在只会显示HtmlBody内容 //设置纯文本消息 builder.TextBody = $"1-这是一个纯文本内容\n"; //创建带有图片附件的内容且嵌套在Html模板中 string imgPath = @"C:\Users\Happy\Pictures\Saved Pictures\2d0e6f4495ee9cab920b2bdaeb155e37.jpeg"; var image = builder.LinkedResources.Add(imgPath); image.ContentId = MimeUtils.GenerateMessageId(); //设置html消息 string strHtml = $"<p style='color:red'><b >2-愚公搬代码 你好<b><br/></p>" + $"<p><i>这是我在进行测试简单带有图片附件的HTML邮件的测试<i><br/></p>" + $"<p><code>---愚公搬代码<code><br/></p>"; builder.HtmlBody = string.Format(strHtml); ////设置日历文件 //string calendarFile = @"C:\Users\CoffeeMilk\Pictures\MES软件开发启动会.ics"; //builder.Attachments.Add(calendarFile); //合并消息 message.Body = builder.ToMessageBody(); return message; } /// <summary> /// 发送邮件 /// </summary> /// <param name="needSendMessage">需要发送的邮件消息</param> public static void SendEmail(MimeMessage needSendMessage) { using (var smtpClient = new SmtpClient()) { smtpClient.MessageSent += (sender, args) => { Console.WriteLine("发送邮件状态:" + args.Response); }; smtpClient.ServerCertificateValidationCallback = (s, c, h, e) => true; smtpClient.Connect("smtp.qq.com", 25, MailKit.Security.SecureSocketOptions.StartTls); smtpClient.Authenticate("2528877987@qq.com", "ikuwynygvxtcdife");//这个不是qq密码,是开启imap时候的16位授权码 smtpClient.Send(needSendMessage); smtpClient.DisconnectAsync(true); } } } }

发送附件邮件

很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。

//创建邮件 var MimeMessage = ConsoleTest.MailKitHelper.CreateSimpleMessageOfImageAttachments(); //发送邮件 ConsoleTest.MailKitHelper.SendEmail(MimeMessage);

发送html邮件

//创建邮件 var MimeMessage = ConsoleTest.MailKitHelper.CreateSimpleMessageOfImageHtmlAttachments(); //发送邮件 ConsoleTest.MailKitHelper.SendEmail(MimeMessage);