您需要在联机模式下打开文件夹并检索其内容数量。在扩展MAPI(C++或Delphi)中,调用IMAPISession::OpenEntry
时需要使用MAPI_NO_CACHE
位 - 您可以在OutlookSpy中使用该位:单击IMAPIFolder按钮,选择PR_ENTRYID属性,右键单击,选择IMAPISession :: OpenEntry,确保检查MAPI_NO_CACHE 。
在++比C等语言或Delphi情况下,你可以使用Redemption - 它的GetFolderFromID
,GetMessageFromID
版本等放行由IMAPISession::OpenEntry
使用标志。
MAPI_NO_CACHE = &H0200
MAPI_BEST_ACCESS = &H0010
set OomFolder = Application.ActiveExplorer.CurrentFolder
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set RdoFolder = Session.GetFolderFromID(OomFolder.EntryID, , MAPI_NO_CACHE Or MAPI_BEST_ACCESS)
MsgBox "Number of items in the online folder: " & RdoFolder.Items.Count
感谢您的支持。我将无法测试它,所以我不会将其标记为答案。你的回答启发了我的解决方法:我只需在在线模式下再次设置同一个电子邮件帐户,然后使用上面的代码计算每个文件夹中的邮件(这与服务器上的邮件完全相同)。然后我可以将它与离线帐户中的本地文件夹进行比较。这不是完美的解决方案,但它会完成这项工作。 – Edgar