使用 EWS,如果我有会议室的电子邮件地址,如何获取会议室名称?
Using EWS, how do I get a meeting room name if I have its email address?
我有一个会议室电子邮件地址列表,我想知道他们的名字。我如何使用 EWS 和 2010 交换服务器来做到这一点。虽然服务器似乎没有 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_SP1、ExchangeVersion.Exchange2010_SP2 等
您可以使用如下的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);
}
}
我有一个会议室电子邮件地址列表,我想知道他们的名字。我如何使用 EWS 和 2010 交换服务器来做到这一点。虽然服务器似乎没有 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_SP1、ExchangeVersion.Exchange2010_SP2 等
您可以使用如下的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);
}
}