我想从 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/