邮箱用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();
  }
posted @ 2025-06-04 16:19  十二月雨  阅读(69)  评论(0)    收藏  举报