仅传入电子邮件地址时从 EWS 获取显示名称

Getting display name from EWS when passing in just an email address

我使用自定义 GetMailTips SOAP 调用(因为 Core 2.0 的 EWS 不支持它)来获取一批电子邮件地址的外出信息。

如何获取我为其传递电子邮件地址的用户的显示名称?

我可以调用托管 API 的 ResolveName,这很有效,但必须一次完成一个,速度很慢。理想情况下,我希望在发出 GetMailTips 请求时获取此信息,但请求失败时,我会调用所有电子邮件地址以一次获取所有显示名称。我读到应该是一个 ResolveNames 方法,但它也不在 API 中。

感谢任何帮助

Autodiscover 可以return 用于多个用户,例如

        AutodiscoverService adService = new AutodiscoverService(ExchangeVersion.Exchange2013_SP1);
        adService.Credentials = new NetworkCredential("user@d.com", "pass");
        adService.RedirectionUrlValidationCallback = adAutoDiscoCallBack;
        List<String> Users = new List<string>();
        Users.Add("user1@domain.com");
        Users.Add("user2@domain.com");
        GetUserSettingsResponseCollection usrSettings = adService.GetUsersSettings(Users, UserSettingName.UserDisplayName);
        foreach(GetUserSettingsResponse usr in usrSettings)
        {
            Console.WriteLine(usr.Settings[UserSettingName.UserDisplayName]);
        }

另一种方法是创建邮件并将电子邮件地址添加为收件人,然后将其保存到草稿文件夹,地址应该根据 GAL 进行解析。