可以读取存储在交换服务器上的邮件

时间:2018-07-29 08:27:01

标签: vba outlook exchange-server

我已连接到交换服务器,因此有些邮件存储在我的本地Outlook文件中,有些则存储在服务器上。 在Outlook中,该文件夹的项目计数(我想读出)显示13.000个项目。 但是,当我尝试通过VBA遍历项目时:

Sub asdf()
Dim objOutlook As Outlook.Application
Set objOutlook = CreateObject("Outlook.Application")
Dim objMAPIFolder As Object
Dim objFolder As Object
Dim myItem As Outlook.MailItem
Dim archivFolder As Outlook.Folder
Dim subFolder As Outlook.Folder
For Each objMAPIFolder In objOutlook.Session.Folders
For Each objFolder In objMAPIFolder.Folders
    If objFolder.Name = "Inbox" Then
    Set archivFolder = objFolder
    For Each subFolder In archivFolder.Folders
            If subFolder.Name = "Folder X" Then
             MsgBox subFolder.Items.Count 'should be 13.000 but says 5.000
            End If
        Next
        End If
    Next
Next
Set objOutlook = Nothing
End Sub

向我显示5.000。在Outlook中,我可以单击“单击此处以在Microsoft Exchange上查看更多信息”,然后查看其余的邮件。

如何通过VBA遍历基于服务器的邮件?

问候 沃勒

1 个答案:

答案 0 :(得分:0)

在扩展MAPI级别(C ++或Delphi)上,您可以open the folder in the online mode访问远程存储的消息。

在使用VBA(或其他语言,例如C#或VB.Net)的情况下,如果可以选择使用Redemption,则它可以以在线模式打开文件夹(其RDOSession。{ {1}}方法允许传递GetFolderFromID标志):

MAPI_NO_CACHE