小编lor*_*lag的帖子

使用 MailKit 检查 imap 文件夹是否存在

我正在尝试将邮件移动到另一个文件夹,但我无法找到一种简单的方法来检查目标文件夹是否存在,我假设给定的文件夹路径是根文件夹,我尝试这样做:

\n\n
public void MoveMessages(Config accountInfo, List<int> uids, string \n   sourceFolderName, string targetFolderName)   \n{\n            ValidateAccountInfoConfiguration(accountInfo);\n            using (var client = new ImapClient())\n            {\n                Authenticate(accountInfo, client);\n\n                var sourceFolder = GetSourceFolder(sourceFolderName, client);\n                sourceFolder.Open(FolderAccess.ReadWrite);\n                var topLevelFolder = client.GetFolder(client.PersonalNamespaces[0]);\n                var topFolders = topLevelFolder.GetSubfolders();\n                var targetFolder = topFolders.FirstOrDefault(folder => folder.Name == targetFolderName);\n                if (targetFolder == null)\n                    targetFolder = topLevelFolder.Create(targetFolderName, true);\n                var uidsToMove = GetUniqueIds(sourceFolder, SearchQuery.Seen).Where(uid => uids.Any(uidToMove => uidToMove == uid.Id)).ToList();\n                sourceFolder.MoveTo(uidsToMove, targetFolder);\n                sourceFolder.Expunge(uidsToMove);\n\n            }\n        }\n
Run Code Online (Sandbox Code Playgroud)\n\n

在文档中,IMailFolder 接口包含 Exists 属性,但是当我尝试使用 IMailFolder.GetFolder("pathToFolder") 获取文件夹时,如果该文件夹不存在,则会抛出folderNotFound 异常,因此我无法理解用例存在财产,我错过了什么?或者我当前的实现是实现获取目标文件夹的正确方法?

\n

c# imap mailkit

5
推荐指数
1
解决办法
2880
查看次数

标签 统计

c# ×1

imap ×1

mailkit ×1