Outlook Selecting a Subfolder in the SharedMailbox using GetSharedDefaultFolder

前端 未结 2 534
执念已碎
执念已碎 2021-01-14 20:24

I am having trouble trying to select a subfolder in SharedMailbox.
I have read a number of resources on GetSharedDefaultFolder.
However

相关标签:
2条回答
  • 2021-01-14 21:09

    You first resolve the owner as described here http://www.slipstick.com/developer/working-vba-nondefault-outlook-folders/

    "You can use the mailbox owner's display name, alias, or email address when resolving the recipient."

    Sub ListOutlookEmailInfoInExcel()
    
    Dim olNS As Outlook.NameSpace
    Dim olTaskfolder As Outlook.MAPIFolder
    Dim olTask As Outlook.TaskItem
    Dim olItems As Outlook.Items
    
    Dim objOwner As Outlook.Recipient
    
    Set olNS = GetNamespace("MAPI")
    
    Set objOwner = olNS.CreateRecipient("Shared Folder 1")
    objOwner.Resolve
    
    If objOwner.Resolved Then
        Set olTaskFolder = olNS.GetSharedDefaultFolder(objOwner, _
          olFolderInbox).Folders("admin")
        Set olItems = olTaskFolder.Items
    End If
    
    End Sub
    
    0 讨论(0)
  • 2021-01-14 21:15

    The GetSharedDefaultFolder method of the Namespace class accepts two parameters: a Recipient object and the FolderType value.

    The How to: Display a Shared Calendar of a Recipient article provides the following sample code in C#:

    private void DisplayManagerCalendar()
    {
        Outlook.AddressEntry addrEntry =
             Application.Session.CurrentUser.AddressEntry;
        if (addrEntry.Type == "EX")
        {
            Outlook.ExchangeUser manager =
            Application.Session.CurrentUser.
                AddressEntry.GetExchangeUser().GetExchangeUserManager();
            if (manager != null)
            {
                Outlook.Recipient recip =
                    Application.Session.CreateRecipient(manager.Name);
                if (recip.Resolve())
                {
                    try
                    {
                        Outlook.Folder folder =
                           Application.Session.GetSharedDefaultFolder(
                              recip, Outlook.OlDefaultFolders.olFolderCalendar)
                           as Outlook.Folder;
                        folder.Display();
                    }
                    catch
                    {
                        MessageBox.Show("Could not open manager's calendar.",
                           "GetSharedDefaultFolder Example",
                           MessageBoxButtons.OK,
                           MessageBoxIcon.Error);
                    }
                }
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题