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

时间:2018-06-02 07:17:18

标签: c# exchange-server exchangewebservices

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

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

我可以调用托管API的ResolveName,但是它必须一次完成一个,但速度很慢。我想在获取GetMailTips请求时理想地获取此信息,并且无法通过所有电子邮件地址拨打电话以立即获取显示名称。我读过那里有一个ResolveNames方法,但它也不在API中。

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:1)

自动发现可以为多个用户返回,例如

        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进行解析。