MailKit发送邮件

Posted Zhuo-Hu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MailKit发送邮件相关的知识,希望对你有一定的参考价值。

MailKit发送邮件

第一步:

如果您在使用 .NET 应用程序中使用 client.Connect("smtp.example.com", 587, SecureSocketOptions.StartTls); 代码,并且看到 Visual Studio 编辑器中 Connect 方法上出现了红色波浪线,可能是因为该方法不存在于当前的上下文中,或者是未正确引用其依赖项。

Connect 方法通常是在使用 MailKitSystem.Net.Mail 等库发送电子邮件时使用的方法,这些库提供了发送电子邮件所需的方法和类。在使用这些库之前,您需要先在项目中引用相应的依赖项。如果您正在使用的是 .NET Core 或 .NET 5 及更高版本,则应使用 NuGet 包管理器或 .NET CLI 工具来安装这些依赖项。

例如,如果您正在使用 MailKit 库,则可以在 NuGet 包管理器控制台或命令行中运行以下命令来安装该库:

Install-Package MailKit

在此之前,需要在自己的邮箱账户上开启POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务获取授权码.

路径:拿qq邮箱举例:登录QQ邮箱>点击设置>下拉看见POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务==>开启服务

方法:

using MimeKit;
using MailKit.Security;
using MailKit.Net.Smtp;

public IActionResult Email(string email,string text,string body) 
        
        
            #region 此代码是使用最原始的MailMessage和SmtpClient生成
            // 创建一个 MailMessage 实例
            //MailMessage mail = new MailMessage();
            //mail.From = new MailAddress("你的邮箱地址");
            //mail.To.Add(email);
            //mail.Subject = text;
            //mail.Body = body;
             ////var a = file;
            ////发送邮件
            //string fileName = file.FileName;
            //string filePath = System.IO.Path.GetFullPath(fileName);
            //Attachment attachment = new Attachment(filePath);
            //mail.Attachments.Add(attachment);
             //// 创建一个 SmtpClient 实例
            //SmtpClient smtpClient = new SmtpClient();
            //smtpClient.Host = "smtp.qq.com";
            //smtpClient.EnableSsl = true;
            //smtpClient.UseDefaultCredentials = false;
            //smtpClient.Credentials = new NetworkCredential("你的邮箱地址", "授权码");

            //// 发送邮件
            //smtpClient.Send(mail);
            //return Ok(mail);
            #endregion


			//此段代码使用MailKit
            var message = new MimeMessage();
            message.From.Add(new MailboxAddress("Sender Name", "你的邮箱"));
            message.To.Add(new MailboxAddress("Recipient Name", email));
            message.Subject = text;

            var builder = new BodyBuilder();
            builder.TextBody = body;

            message.Body = builder.ToMessageBody();

            using (var client = new MailKit.Net.Smtp.SmtpClient())
            
                client.Connect("smtp.qq.com", 587, SecureSocketOptions.StartTls);
                client.Authenticate("你的邮箱地址", "授权码");
                client.Send(message);
                client.Disconnect(true);
            

            Console.WriteLine("Email sent successfully.");
        return Ok();
    

以上是关于MailKit发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Mailkit 发送电子邮件

愚公系列2023年02月 .NET CORE工具案例-使用MailKit使用SMTP协议进行邮件发送

Mailkit - 接收从苹果邮件发送的消息时没有附件或 html 正文

我可以使用 MailKit 通过电子邮件发送文件吗?

收发邮件之 MAILKIT

使用 Mailkit 或 mimekit 向多个收件人发送一封电子邮件