public static void RemoveFolder(IMailFolder folder, Configuration config) { using var kernel = new FakeItEasyMockingKernel(); kernel.Rebind <ILogger>().ToConstant(Log.Logger); kernel.Rebind <Configuration>().ToConstant(config); kernel.Rebind <ImapStore>().ToSelf().InSingletonScope(); kernel.Rebind <ImapConnectionFactory>().ToSelf().InSingletonScope(); var imapFac = kernel.Get <ImapConnectionFactory>(); using var connection = imapFac.GetImapConnectionAsync().Result; var subFolders = folder.GetSubfolders(); foreach (var subFolder in subFolders) { RemoveFolder(subFolder, config); } folder.Open(FolderAccess.ReadWrite); var allMessages = folder.Search(SearchQuery.All); folder.SetFlags(allMessages, MessageFlags.Deleted, true); folder.Expunge(); folder.Close(); try { folder.Delete(); } catch (Exception e) { Debug.WriteLine("Exception while deleting folder: " + e.ToString()); } connection.Disconnect(true); }