VSTO Outlook: не удается найти вложенные папки общего доступа


0

Я пытаюсь переместить письма из любой папки в очень специфическую подпапку общего почтового ящика. Попробовав много разных вещей, которые не сработали, я попытался пропустить каждую папку в папке «Входящие» и проверить, есть ли у меня имя, которое я ищу. Когда я пытаюсь переместить почтовый элемент, я получаю сообщение о том, что элемент не может быть перемещен. После того, как я выяснил, что немного искал причину, я обнаружил, что, по-видимому, нет папки внутри моего почтового ящика, и каждый цикл выходит из него, не проверяя ни одной записи. Итак, как мне получить доступ к определенной подпапке, которую я знаю только?

Соответствующий код:

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 

То, что я пытался, но не помогло мне решить эту проблему:

  • Пробовал возвращать только общий почтовый ящик, и это сработало, однако входящие не являются Я хочу переместить почту.

Вкратце: я пытаюсь переместить почту в подпапку общего почтового ящика, но в соответствии с сообщениями об ошибках, похоже, нет подпапок.

Надеюсь, вы можете мне помочь.

Edit: Моя проблема может быть немного неуместны, как это кажется, что там может быть проблема с разрешениями мой внешний вид счета имеет. Если проблема будет решена таким образом, я обновлю этот поток и закрою ist.

0

Я решил это - я не совсем уверен, как именно это могло произойти, но это, безусловно, имело отношение к разрешениям, которые у меня были.