如何引用服务器收件箱而不是脱机收件箱?

时间:2019-05-06 15:15:44

标签: vba server outlook inbox

我想遍历整个Outlook收件箱,包括存储在MS Exchange Server上的邮件。但是,当我通过以下方式引用Outlook收件箱时:

NameSpace.GetDefaultFolder(olFolderInbox)

它仅返回我的离线收件箱中的项目。有人知道如何返回整个服务器档案吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您需要先在ThisOutlookSession(vba)中添加一些内容,然后才能执行您想做的事情。

请访问以下网站。关于连接共享文件夹(交换)和日历的很多解释。

https://www.slipstick.com/developer/working-vba-nondefault-outlook-folders/

答案 1 :(得分:0)

您需要以在线模式打开文件夹。您可以

1)关闭缓存模式(从性能的角度来看当然不理想)

2)使用IMAPISession::OpenEntryMAPI_NO_CACHE0x0200)标志,使用扩展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