我正在尝试使用ews托管API 2.0(java库-https://github.com/OfficeDev/ews-java-api)来获取邮箱用户信息(备注,电子邮件和属性等)。
似乎没有方法可以做到这一点。大多数方法都在获取可从Outlook界面访问的数据(收件箱,已发送等),但是我需要所有邮箱用户及其属性。 我设法用以下方法做到了:
public synchronized List<Contact> getContactsFromCalendarSystem(String parentEmail) throws Exception {
List<Contact> contacts = new ArrayList<>();
// The Notes property format: rfid,
ExpandGroupResults myGroupMembers = getService().expandGroup(parentEmail);
for (EmailAddress address : myGroupMembers.getMembers()) {
PropertySet allProps = new PropertySet(BasePropertySet.FirstClassProperties);
NameResolutionCollection mailboxes = getService().resolveName(address.getAddress(), ResolveNameSearchLocation.DirectoryOnly, true, allProps);
for (NameResolution nr : mailboxes) {
String[] properties;
if (nr.getContact().getNotes() != null) {
properties = StringUtils.stripAll(nr.getContact().getNotes().split(","));
//do whathever
}
}
}
return contacts;
}
但是这里的问题是交换服务器管理员必须创建将包含邮箱用户的分布式组。我的代码中的parentEmail是该分布式组的电子邮件地址。我想避免这样做。
那么有什么方法可以访问邮箱用户列表而不创建任何其他组? P.S不使用LDAP。我需要从交易所做起
任何帮助将不胜感激