我一直在研究这个小型控制台应用程序来阅读邮箱。它工作正常,但在完成阅读邮件后,我希望它将它们移动到已删除帖子文件夹。我发现了与此相关的其他问题,但它似乎没有解决它。我没有收到任何错误,Seen
旗帜完美无瑕。如有疑问,请随时发表评论。
DateTimeOffset test = DateTime.Now;
using (var client = new ImapClient())
{
client.ServerCertificateValidationCallback = (s, c, h, e) => true;
client.Connect("Imap.outlook.com", 993, true);
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.Authenticate("Email@mail.com", "password");
var inbox = client.Inbox;
inbox.Open(FolderAccess.ReadWrite);
Console.WriteLine("Total messages: {0}", inbox.Count);
Console.WriteLine("Recent messages: {0}", inbox.Recent);
for (int i = 0; i < inbox.Count; i++)
{
var message = inbox.GetMessage(i);
Console.OutputEncoding = System.Text.Encoding.ASCII;
test = message.Date;
inbox.AddFlags(i , MessageFlags.Seen, true);
inbox.AddFlags(i, MessageFlags.Deleted, true); // Doesn't do anything.
Console.WriteLine("Emne: {0}", message.Subject);
Console.WriteLine("Fra: {0}", message.From);
Console.WriteLine("id: {0}", test);
Console.WriteLine(" ");
}
Console.ReadLine();
client.Disconnect(true);
}
答案 0 :(得分:2)
你好我经过大量的搜索和测试后找到了答案,
inbox.AddFlags(i, MessageFlags.Deleted, true);
将其标记为已删除,但未将其移至删除帖子或任何内容,我发现如果我运行
inbox.Expunge();
删除所有标记为要删除的邮件。