我想迭代整个Outlook收件箱,包括存储在MS Exchange Server上的消息。但是,当我引用我的Outlook收件箱时:
NameSpace.GetDefaultFolder(olFolderInbox)
它仅返回我的离线收件箱中的项目。有人知道如何返回整个服务器存档吗?
感谢您的帮助。
您需要在执行想要做的事情之前向ThisOutLooksession(VBA(添加一些东西。
请参阅以下网站。关于连接到共享文件夹(Exchange(和日历有很多解释。
https://www.slipstick.com/developer/working-vba-nondefault-utlook-folders/
您需要在在线模式下打开文件夹。您可以
-
关闭缓存模式(从性能点不理想(
-
使用
IMAPISession::OpenEntry
和MAPI_NO_CACHE
(0x0200
(标志使用扩展MAPI(仅C 或Delphi(在线模式下重新打开文件夹。 -
使用赎回重新打开文件夹(我是其作者 - 任何语言( - 它在上面揭露(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