【问题标题】:Outlook VBA Access Folders in Shared Mailbox共享邮箱中的 Outlook VBA 访问文件夹
【发布时间】:2018-11-20 23:33:41
【问题描述】:

我在 Outlook 中有一些 VBA 代码,它在主邮箱中表现完美 - 但是当我添加辅助邮箱时,相同的代码正在挣扎 - 这是 Outlook 2016。

阅读子文件夹似乎很困难 - 我可以让它阅读收件箱中的邮件,但不能阅读子文件夹。

代码:

Dim sharedemail As Outlook.Recipient
Dim myOlApp As New Outlook.Application
Dim myNameSpace As Outlook.NameSpace
Dim myInbox As Outlook.MAPIFolder
Dim myDestFolder Outlook.MAPIFolder
Dim strSubject As String
Dim i As Integer

Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set sharedemail = myNameSpace.CreateRecipient("recip@domain.com")
Set myInbox = myNameSpace.GetSharedDefaultFolder(sharedemail, olFolderInbox)  

For itemCount = myInbox.items.Count To 1 Step -1 'Iterates from the end backwards

    Set item = myInbox.items(itemCount)
    strSubject = UCase(item.Subject)

    Select Case True

        Case InStr(strSubject, UCase("Holiday Request")) > 0
        'Set destination folder
        Set myDestFolder = myInbox.Folders("HolidayRequests")
        'move the email out of inbox
        item.Move myDestFolder

    End Select

Next

它停在 Set myDestFolder 行,因为它似乎无法选择该子文件夹 - 正如我所说,相同的代码似乎在主收件箱中工作正常?

谢谢

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    请记住,Outlook 在主 OST 文件中保留共享默认文件夹,并且不会同步子文件夹。

    你可以
    1.取消选中“下载共享文件夹”复选框
    2. 使用扩展 MAPI(C++ 或 Delphi)——这将相当复杂,因为您需要检索该邮箱的自动发现 XML 并适当地构造商店条目 ID。
    3. 使用Redemption - 它是RDOSession.GetSharedDefaultFolder 的版本,返回文件夹的在线版本 (RDOFolder) 及其所有子文件夹。

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多