【发布时间】:2021-11-27 01:18:27
【问题描述】:
我在使用 MailKit/MimeKit 工具将邮件从收件箱移到邮件服务器上的子文件夹时遇到问题。目前我可以阅读任一文件夹中的电子邮件,也可以从任一文件夹中删除电子邮件。邮件服务器是 microsoft exchange 365。我目前使用 Mozilla Thunderbird 客户端的任何 imap 功能都没有任何问题。我的代码如下:
public void MoveEmail(string index, string folder)
{
using (var client = new MailKit.Net.Imap.ImapClient())
{
client.Connect(ServerUrl, ServerPort, true);
client.Authenticate(UserName, Password);
client.Inbox.Open(MailKit.FolderAccess.ReadWrite);
if (!client.Inbox.IsOpen == true)
throw new Exception("Inbox is not open.");
var dingle = client.Inbox.GetSubfolder(folder);
dingle.Open(MailKit.FolderAccess.ReadWrite);
if (!dingle.IsOpen == true)
throw new Exception("Dingle is not open.");
client.Inbox.MoveTo(0, dingle);
var dangle = dingle.Count;
var wingle = dingle.Fetch(0, -1, MailKit.MessageSummaryItems.Full);
dingle.Close(false);
client.Disconnect(true);
}
}
代码一直执行,直到遇到 move 语句,然后抛出异常:“文件夹当前未以读写模式打开。”
感谢阅读! 卡尔
【问题讨论】: