VSTO Outlook:找不到共享收件箱的子文件夹

VSTO Outlook: Cannot find subfolders of shared inbox

我正在尝试将邮件从任何文件夹移动到共享收件箱的一个非常特定的子文件夹。在尝试了许多不起作用的不同方法后,我尝试遍历收件箱中的每个文件夹,并检查它是否具有我要查找的名称。当我尝试移动 mailitem 时,我收到无法移动该元素的消息。在对我发现的原因进行了更长的搜索之后,显然我的收件箱内不存在任何文件夹,并且 for each 循环退出而不检查单个条目。那么我应该如何访问我只知道名称的特定子文件夹?

相关代码:

Private Const destFolder = "myfoldername"

Public Function MoveMail()
    SelectedItems = Globals.ThisAddIn.Application.ActiveExplorer.Selection
    For Each Item In SelectedItems
        Call MoveSelectedMail(Item)
    Next Item
End Function

Function MoveSelectedMail(Item As Outlook.MailItem)
    Item.Move(GetFolderToMove(destFolder))
End Function

Function GetFolderToMove(ByVal FolderName As String) As Outlook.Folder
    Dim NS As Outlook.NameSpace
    Dim objOwner As Outlook.Recipient
    NS = Globals.ThisAddIn.Application.GetNamespace("MAPI")
    objOwner = NS.CreateRecipient("NameofSharedMailbox")
    objOwner.Resolve()

    If objOwner.Resolved Then
        Dim inbox As Outlook.Folder
        inbox = NS.GetSharedDefaultFolder(objOwner, OlDefaultFolders.olFolderInbox)
        For Each folder As Outlook.Folder In inbox.Folders
            MsgBox(folder.Name)
            If folder.Name = FolderName Then
                Return folder
            End If
        Next folder
    End If
End Function

这是我在 VBA 中使用的代码,但当我开始尝试做与 VSTO 插件相同的事情时没有用:

Function GetFolderToMove(ByVal FolderPath As String) As Outlook.Folder
    Dim NS As Outlook.NameSpace
    Dim objOwner As Outlook.Recipient
    Set NS = Application.GetNamespace("MAPI")
    Set objOwner = NS.CreateRecipient("NameofSharedMailbox")
    objOwner.Resolve

    If objOwner.Resolved Then
        Set GetFolderPath = NS.GetSharedDefaultFolder(objOwner, olFolderInbox).Folders(destFolder)
    End If
End Function

我尝试但没有帮助我解决这个问题的方法:

简而言之:我正在尝试将邮件移动到共享收件箱的子文件夹,但根据错误消息似乎没有子文件夹。

希望你能帮助我。

编辑: 我的问题可能有点不合适,因为我的 outlook 帐户的权限似乎有问题。如果问题将以这种方式解决,我将更新此线程并关闭 ist。

我解决了 - 我不完全确定这到底是怎么发生的,但这肯定与我拥有的权限有关。