c# MailKit如何从邮件服务器(IMAP)中删除邮件

本文关键字:删除 IMAP MailKit 邮件服务器 | 更新日期: 2023-09-27 18:12:37

我发现了这个:

client.Inbox.AddFlags (new int[] { index }, MessageFlags.Deleted);
or
client.Inbox.AddFlags (new UniqueId[] { uid }, MessageFlags.Deleted);
then
client.Inbox.Expunge ();

我不知道如何获得索引或uid在这里使用。我的客户端是这样工作的:

using (var client = new ImapClient())
{
                client.Connect(serverM.Text, Convert.ToInt32(portM.Text), true);
                client.AuthenticationMechanisms.Remove("XOAUTH");
                client.Authenticate(user.Text, pass.Text);
                var inbox =  client.GetFolder(inbox.Text);
                inbox.Open(FolderAccess.ReadWrite);
                var message = inbox.GetMessage(i);
                for (int i = 0; i < inbox.Count; i++) // 
                {
                    var message = inbox.GetMessage(i);
                    ...
                }
}

int I也不是索引。消息。MessageID不等于UID。我错在哪里?

c# MailKit如何从邮件服务器(IMAP)中删除邮件

您在这里使用的是索引:

for (int i = 0; i < inbox.Count; i++) // 
{
    var message = inbox.GetMessage(i);
    ...
}

i为索引。

在最近的MailKit版本中,我添加了以下功能:

inbox.AddFlags (i, MessageFlags.Deleted);

现在你不需要这样做了:

inbox.AddFlags (new int[] { i }, MessageFlags.Deleted);