C# .NET Core中跨平台电子邮件库MailKit发送和接收邮件
文章标签:
html邮箱
MailKit 是一个跨平台的电子邮件处理库,支持发送和接收电子邮件。
C# .NET Core中使用MailKit处理电子邮件:
- 安装MailKit NuGet包:
可以使用Visual Studio的NuGet包管理器或使用dotnet CLI来安装它。
- 导入所需的命名空间:
using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;
- 创建一个MimeMessage对象,并设置发件人、收件人、主题和正文等信息:
var message = new MimeMessage();
message.From.Add(new MailboxAddress("发件人名称", "发件人邮箱"));
message.To.Add(new MailboxAddress("收件人名称", "收件人邮箱"));
message.Subject = "邮件主题";
var bodyBuilder = new BodyBuilder();
bodyBuilder.TextBody = "邮件正文";
// 如果要发送HTML格式的邮件,可以使用以下代码:
// bodyBuilder.HtmlBody = "<h1>邮件正文</h1>";
message.Body = bodyBuilder.ToMessageBody();
- 发送邮件,创建一个SmtpClient对象,并设置SMTP服务器和端口号:
using (var client = new SmtpClient())
{
client.Connect("SMTP服务器地址", 端口号, SecureSocketOptions.StartTls);
// 如果SMTP服务器要求身份验证,请提供用户名和密码:
client.Authenticate("用户名", "密码");
// 发送邮件
client.Send(message);
client.Disconnect(true);
}
- 接收邮件,创建一个ImapClient对象,并连接到IMAP服务器:
using (var client = new ImapClient())
{
client.Connect("IMAP服务器地址", 端口号, SecureSocketOptions.StartTls);
// 如果IMAP服务器要求身份验证,请提供用户名和密码:
client.Authenticate("用户名", "密码");
// 选择收件箱
client.Inbox.Open(FolderAccess.ReadOnly);
// 获取收件箱中的邮件数量
int messageCount = client.Inbox.Count;
// 遍历收件箱中的邮件
for (int i = 0; i < messageCount; i++)
{
var message = client.Inbox.GetMessage(i);
// 处理邮件,例如打印主题和发件人
Console.WriteLine("主题: " + message.Subject);
Console.WriteLine("发件人: " + message.From);
}
client.Disconnect(true);
}
代码中的"IMAP服务器地址"、端口号、"用户名"和"密码"应替换为实际使用的IMAP服务器的相关信息。
这个简单示例演示了如何使用MailKit在C# .NET Core中发送和接收电子邮件。