我正在使用以下内容将邮件移动到 Outlook 中的文件夹。
Dim chemin() as String
chemin = Split(path, "/")
Set myNameSpace = Application.GetNamespace("MAPI")
Set myFolder = myNameSpace.Folders("LiveLink").Folders("Livelink HQE").Folders("Entreprise").Folders(chemin(1)).Folders(chemin(2)).Folders(chemin(3))
myEntryID = myFolder.EntryID
myEntryID = myFolder.StoreID
objMail.Move myNameSpace.GetFolderFromID(myEntryID, storeID)
一切实际上都在工作。如您所见,该文件夹位于 Livelink 中。而且Livelink服务器实际上响应很慢,我对此无能为力。
我担心的是多次使用 .Folders() 而执行类似 .Folders() 的操作会快很多.Folders("Livelink/root/folder1/folder2/")
。但这显然不起作用,并且因为 .Folders 命令每次都需要 ping Livelink 服务器,实际上执行这行代码需要整整 10 秒(文件夹越深,到达的时间越长它)。
有没有其他方法可以直接访问 Outlook 中的特定文件夹来移动邮件?我知道每个文件夹(甚至 Livelink 中的文件夹)都有某种 Outlook ID,但我看不到任何使用它的方法。我已经尝试了以下方法,但它还没有工作:
Dim folder As MAPIFolder
Dim myNameSpace As Outlook.NameSpace
Set myNameSpace = Application.GetNamespace("MAPI")
Set folder = myNameSpace.GetFolderFromID(target, Application.GetNamespace("MAPI").Folders("LiveLink").storeID)
在执行 GetFolderfromID() 时,这给了我一个错误。vartarget
实际上是我要将邮件复制到的文件夹的 EntryID。