MailKit发送邮件
Posted Zhuo-Hu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MailKit发送邮件相关的知识,希望对你有一定的参考价值。
MailKit发送邮件
第一步:
如果您在使用 .NET 应用程序中使用 client.Connect("smtp.example.com", 587, SecureSocketOptions.StartTls);
代码,并且看到 Visual Studio 编辑器中 Connect
方法上出现了红色波浪线,可能是因为该方法不存在于当前的上下文中,或者是未正确引用其依赖项。
Connect
方法通常是在使用 MailKit
或 System.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发送邮件的主要内容,如果未能解决你的问题,请参考以下文章
愚公系列2023年02月 .NET CORE工具案例-使用MailKit使用SMTP协议进行邮件发送