邮箱用IMAP协议读取邮箱收件箱将邮件附件保存本地
1.引入MailKit插件
2.代码实现
ImapClient client = new ImapClient();
try
{
// 连接到IMAP服务器
client.CheckCertificateRevocation = false;
client.ServerCertificateValidationCallback = (s, c, h, e) => true;
client.SslProtocols = SslProtocols.Tls12;
client.Connect("mail.****.com", 993, true);//邮箱服务器,端口,启用SSL
client.Authenticate("****@htomc.com", "*********");//邮箱账号,邮箱密码
// 打开收件箱
client.Inbox.Open(FolderAccess.ReadOnly);
//获取最新的邮件
var firstMail = client.Inbox.Search(SearchQuery.All).Last();
var message = client.Inbox.GetMessage(firstMail);
// 读取邮件中的所有附件
foreach (var attachment in message.Attachments)
{
// 保存附件到本地磁盘(可选)
using (FileStream fileStream = File.Create("D:/files/" + attachment.ContentType.Name)) // 指定保存路径和文件名
{
var tempAttachment = (MimePart)attachment;
tempAttachment.Content.DecodeTo(fileStream);// 将附件内容写入文件流中
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
finally
{
// 断开连接
client.Disconnect(true);
client.Dispose();
}