我发现了这个:
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 不是索引。 message.MessageID 不等于 UID。我的错误在哪里?
最佳答案
你在这里使用索引:
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);
关于c# MailKit 如何从邮件服务器 (IMAP) 中删除电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24724198/