代码之家  ›  专栏  ›  技术社区  ›  Jean-François Beauchamp

使用EWS,如果我有会议室的电子邮件地址,如何获得会议室的名称?

  •  0
  • Jean-François Beauchamp  · 技术社区  · 8 年前

    我有一个会议室电子邮件地址列表,我想知道他们的名字。如何使用EWS和2010 exchange server做到这一点。但服务器似乎没有SP1,因此我无法使用ExchanceService。ResolveName。如果我这样做了,我就会明白 Method ResolveName is only valid for Exchange Server version Exchange2010_SP1 or later.

    更新时间:

    实际上,我正在使用 https://outlook.office365.com ,因此我不太清楚为什么在尝试使用ResolveName方法时会收到上述错误消息。

    更新2:

    事实上,是的,可以在office365上使用ResolveName。在实例化ExchangeSercice时,我只是传递了错误的服务器版本。我在通过ExchangeVersion。Exchange2010,但也可以使用ExchangeVersion。Exchange2010\u SP1,ExchangeVersion。Exchange2010\u SP2等。

    1 回复  |  直到 8 年前
        1
  •  1
  •   MadDev    8 年前

    您可以使用 ResolveName 操作如下,以获取会议室名称:

        EmailAddressCollection roomLists = service.GetRoomLists();
        foreach (EmailAddress email in roomLists)
        {
            EmailAddress roomList = email.Address;
            PropertySet props = new PropertySet(BasePropertySet.FirstClassProperties);
            NameResolutionCollection nrCol = service.ResolveName(email.Address, ResolveNameSearchLocation.DirectoryOnly, true, props);
            foreach (NameResolution nr in nrCol)
            {
                Console.WriteLine(nr.Contact.DisplayName);
            }
        }