根据此tutorial,我试图获取联系人照片
private String createPhoto() {
try {
AttachmentCollection attachments = contact.getAttachments();
for (Attachment attachment : attachments.getItems()) {
if (attachment instanceof FileAttachment) {
boolean isPhoto = ((FileAttachment) attachment).isContactPhoto();
if (isPhoto) {
attachment.load();
FileAttachment photo = contact.getContactPictureAttachment();
String filename = photo.getName() + ".jpg";
photo.load(new FileOutputStream(filename, true));
return filename;
}
}
}
} catch (Exception ex) {
LOGGER.info("" + ex);
}
return null;
}
但是, attachments.getItems()始终是一个空数组。
在我的邮箱上,我与照片的联系人很少,我可以通过拨打网址https://companyname.exchange.com/EWS/Exchange.asmx/s/GetUserPhoto?email=name@company.exchange.com&size=HR360x360来接收他们
为什么我无法从代码中获取照片?
答案 0 :(得分:0)
在我的邮箱上,我与照片的联系人很少,我可以通过拨打网址https://companyname.exchange.com/EWS/Exchange.asmx/s/GetUserPhoto?email=name@company.exchange.com&size=HR360x360来接收他们
该请求获取存储在(源)用户邮箱(或ActiveDirectory中的低分辨率)中的Userphoto,并通过该操作提供。
您的代码正在尝试检索可以存储为UserMailbox中的联系人附件的ContactPhoto。
所以这些是两个独立的东西,你要处理哪一个?,因为你还没有展示它,你需要确保你的ExchangeServerRequest版本设置为2010或更高版本,因为联系人照片没有被退回您可能还希望使用EWS编辑器https://ewseditor.codeplex.com/快速测试问题中的联系人,这将允许您获取对象并查看是否存在使用EWS的ContactPhoto附件。