exchange-server - 从exchange服务器获取所有联系人

标签 exchange-server exchangewebservices

我想从 Exchange 服务器获取所有用户,但不想获取用户的联系人。事实上,我希望将所有 AD 用户作为我们无法连接到的 Active Directory。

     mExchangeService.ImpersonatedUserId = new ImpersonatedUserId
        {
            Id = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="147e75777f5475753a777b79" rel="noreferrer noopener nofollow">[email protected]</a>",
            IdType = ConnectingIdType.SmtpAddress
        };
        var contacts = _mExchangeService.FindItems(new FolderId(WellKnownFolderName.Contacts),new ItemView(1000)); 

我可以通过上面的代码来获取用户的联系方式,但这不是我想要的,我想使用服务帐户来获取所有 Exchange Web 服务用户。

最佳答案

您可以使用 EWS 来检索目录用户,使用 ExhangeService.ResolveName 。问题是 EWS 将返回不超过 100 个用户,并且无法更改它或进行任何分页。因此,如果您在一家较大的公司,您实际上无法使用 EWS 来做到这一点。

代码:

var nameResolutionCollection = service.ResolveName("SMTP:",
    ResolveNameSearchLocation.DirectoryOnly, true);
foreach (var c in nameResolutionCollection)
{
    Console.WriteLine(c.Mailbox.Address);
}
Console.WriteLine(nameResolutionCollection.Count()); // Maximum 100 users.

关于exchange-server - 从exchange服务器获取所有联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057759/

相关文章:

java - 有没有办法通过 API 在 MS Exchange Server 中创建帐户

c# - 为什么 smtpclient 发送的电子邮件没有出现在已发送的项目中

ms-office - 为所有与会者设置预约时的自定义属性

c# - 使用 Exchange Web 服务从 Exchange 下载附件

powershell - ExtendedPropertyDefinition ID 是否有公共(public)枚举?

powershell - 使用PSSession时令人困惑的ErrorAction行为

xml - 发送至 EWS 的 SOAP 消息将邮件创建为普通邮件,而不是草稿

c# - 连接到 Exchange Online 时出现 403

c# - 从 Exchange Web 服务基本身份验证迁移到 OAuth 2.0

outlook - 如何使用 EWS 从 Outlook 联系人读取扩展属性