我想遍历整个Outlook收件箱,包括存储在MS Exchange Server上的邮件。但是,当我通过以下方式引用Outlook收件箱时:
NameSpace.GetDefaultFolder(olFolderInbox)
它仅返回我的离线收件箱中的项目。有人知道如何返回整个服务器档案吗?
感谢您的帮助。
答案 0 :(得分:0)
您需要先在ThisOutlookSession(vba)中添加一些内容,然后才能执行您想做的事情。
请访问以下网站。关于连接共享文件夹(交换)和日历的很多解释。
https://www.slipstick.com/developer/working-vba-nondefault-outlook-folders/
答案 1 :(得分:0)
您需要以在线模式打开文件夹。您可以
1)关闭缓存模式(从性能的角度来看当然不理想)
2)使用IMAPISession::OpenEntry
和MAPI_NO_CACHE
(0x0200
)标志,使用扩展MAPI(仅C ++或Delphi)以联机模式重新打开文件夹。
3)使用Redemption(任何语言)重新打开文件夹-上面显示了(2):
MAPI_NO_CACHE = &H200
MAPI_BEST_ACCESS &H10
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set vFolder = Session.GetFolderFromID(YourOOMFolder.EntryID, , MAPI_NO_CACHE + MAPI_BEST_ACCESS)
MsgBox vFolder.Items.Count