使用 ImapClient 删除单个或多个电子邮件消息

删除消息

ImapClient 类可以从 IMAP 服务器删除邮件。 ImapClient 类 DeleteMessage() 函数用于删除邮件。它接受消息序列号或唯一 ID 作为参数。 ImapClient 提供 DeleteMessageDeleteMessages 提供逐个或批量删除邮件的方法。以下代码片段展示了如何从 IMAP 服务器删除消息 ID 为 1 的电子邮件。

using var client = new ImapClient("host", "username", "password");
client.SecurityOptions = SecurityOptions.SSLImplicit;

// Append test message
client.SelectFolder(ImapFolderInfo.InBox);

var eml = new MailMessage("from@from.com", "to@to.com")
{
  Subject = "Message to delete",
  Body = "Hey! This Message will be deleted!"
};
var emlId = client.AppendMessage(eml);

// Delete appended message
client.DeleteMessage(emlId);
client.CommitDeletes();

删除多个邮件

可以使用该方式从邮箱中删除多个电子邮件 ImapClient 的 Aspose.Email API。 DeleteMessages 方法提供多种选项,可使用唯一 ID、序列号或其他方式从服务器删除多个邮件。 ImapMessageInfoCollection 元素。以下代码片段展示了如何删除多个邮件。

using var client = new ImapClient("host", "username", "password");
client.SelectFolder(ImapFolderInfo.InBox);
            
// Append test messages
var emlList = new List<MailMessage>();
{
  var eml = new MailMessage("from@from.com", "to@to.com")
  {
    Subject = $"Message to delete {i}",
    Body = "Hey! This Message will be deleted!"
  };
                
  emlList.Add(eml);
}

var appendMessagesResult = client.AppendMessages(emlList);
            
// Bulk Delete appended Messages
client.DeleteMessages(appendMessagesResult.Succeeded.Values, true);
client.CommitDeletes();