首页 > 解决方案 > 在 Outlook 中获取未知收件人的共享文件夹

问题描述

我正在尝试使用 C# 获取 Outlook 中的所有共享文件夹。

我知道NameSpace.GetSharedDefaultFolder()方法,但它需要指定收件人。

当我不知道收件人时,我想知道如何获取所有共享文件夹。

标签: c#outlookvstooutlook-addin

解决方案


您需要知道收件人的姓名;它可以是一个字符串,表示收件人的显示名称、别名或完整的 SMTP 电子邮件地址。在这种情况下,您将能够创建一个收件人对象并获取共享文件夹,如以下示例代码所示:

 Sub ResolveName() 
   Dim myNamespace As Outlook.NameSpace 
   Dim myRecipient As Outlook.Recipient 
   Dim CalendarFolder As Outlook.Folder 

   Set myNamespace = Application.GetNamespace("MAPI")
   Set myRecipient = myNamespace.CreateRecipient("Eugene Astafiev") 
   myRecipient.Resolve 
   If myRecipient.Resolved Then 
     Call ShowCalendar(myNamespace, myRecipient) 
   End If 
 End Sub 

 Sub ShowCalendar(myNamespace, myRecipient) 
   Dim CalendarFolder As Folder 
   Set CalendarFolder = _
     myNamespace.GetSharedDefaultFolder _ 
     (myRecipient, olFolderCalendar) 
   CalendarFolder.Display 
 End Sub

推荐阅读