O365使用Mailkit删除邮件?

时间:2017-09-21 08:04:26

标签: c# office365 imap mailkit

我一直在研究这个小型控制台应用程序来阅读邮箱。它工作正常,但在完成阅读邮件后,我希望它将它们移动到已删除帖子文件夹。我发现了与此相关的其他问题,但它似乎没有解决它。我没有收到任何错误,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);
}

1 个答案:

答案 0 :(得分:2)

你好我经过大量的搜索和测试后找到了答案,

 inbox.AddFlags(i, MessageFlags.Deleted, true);

将其标记为已删除,但未将其移至删除帖子或任何内容,我发现如果我运行

inbox.Expunge();

删除所有标记为要删除的邮件。