如何使用 MailKit 版本 4.3.0 删除电子邮件?
这是我使用的代码:
...
//Ensure that the inbox folder is open
if (!Inbox.IsOpen)
{
//Here never enters
Inbox.Open(FolderAccess.ReadWrite);
}
//Delete message from inbox
try
{
//Here is where I get the exception
Inbox.AddFlags(uid, MessageFlags.Deleted, true);
Inbox.Expunge();
}
catch (Exception ex)
{
//Console.WriteLine($"Error al intentar borrar el correo con UID {uid}: {ex.Message}");
}
finally
{
//Close inbox folder after deleting message
if (Inbox.IsOpen)
{
Inbox.Close();
}
}
...
当我调试代码时,它抛出了下一个异常: MailKit.FolderNotOpenException:“该文件夹当前未在读写模式下打开。”
我向 ChatGPT 询问了该异常,并告诉我可以使用以下代码以读写模式打开,但 Visual Studio 说属性 IsWritable 不存在:
if (!Inbox.IsOpen || !Inbox.IsWritable)
{
Inbox.Open(FolderAccess.ReadWrite);
}
我怎样才能实现这个目标?
收件箱最初以只读模式打开。为了删除消息,您必须再次重新打开它,但这次是在读写模式下。所以,只要摆脱那个
if (!Inbox.IsOpen)
并始终打开它:
Inbox.Open(FolderAccess.ReadWrite);
Inbox.AddFlags(uid, MessageFlags.Deleted, true);
Inbox.Expunge();