在Outlook中获取不知道收件人的共享文件夹

时间:2018-05-17 06:50:01

标签: c# outlook vsto outlook-addin

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

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

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

2 个答案:

答案 0 :(得分:0)

致电Namespace.CreateRecipient传递收件人姓名或地址。使用返回的Recipient对象来调用Namespace.GetSharedDefaultFolder

答案 1 :(得分:0)

您需要知道收件人的姓名;它可以是表示收件人的显示名称,别名或完整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