如何从交换服务器获取联系人的照片
How to get contact's photo from exchange server
基于此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() 始终是一个空数组。
我邮箱里有照片的联系人很少,打电话可以收到URLhttps://companyname.exchange.com/EWS/Exchange.asmx/s/GetUserPhoto?email=name@company.exchange.com&size=HR360x360
为什么我无法通过代码获取照片?
On my mailbox, I have few contacts with photos, and I can receive them by calling URL https://companyname.exchange.com/EWS/Exchange.asmx/s/GetUserPhoto?email=name@company.exchange.com&size=HR360x360
该请求获取存储在(源)用户邮箱(或 ActiveDirectory 中的低分辨率)中并通过该操作可用的用户照片。
您的代码正在尝试检索 ContactPhoto,它可以作为附件存储在 UserMailbox 中的联系人中。
所以这是两件不同的事情,所以您要处理哪一件?,由于您没有展示它,您需要确保将 ExchangeServerRequest 版本设置为 2010 或更高版本,因为 2007 年未返回联系人照片. 您可能还想使用 EWS 编辑器 https://ewseditor.codeplex.com/ 快速测试问题中的联系人,这将允许您获取对象并查看是否有使用 EWS 的 ContactPhoto 附件。
基于此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() 始终是一个空数组。
我邮箱里有照片的联系人很少,打电话可以收到URLhttps://companyname.exchange.com/EWS/Exchange.asmx/s/GetUserPhoto?email=name@company.exchange.com&size=HR360x360
为什么我无法通过代码获取照片?
On my mailbox, I have few contacts with photos, and I can receive them by calling URL https://companyname.exchange.com/EWS/Exchange.asmx/s/GetUserPhoto?email=name@company.exchange.com&size=HR360x360
该请求获取存储在(源)用户邮箱(或 ActiveDirectory 中的低分辨率)中并通过该操作可用的用户照片。
您的代码正在尝试检索 ContactPhoto,它可以作为附件存储在 UserMailbox 中的联系人中。
所以这是两件不同的事情,所以您要处理哪一件?,由于您没有展示它,您需要确保将 ExchangeServerRequest 版本设置为 2010 或更高版本,因为 2007 年未返回联系人照片. 您可能还想使用 EWS 编辑器 https://ewseditor.codeplex.com/ 快速测试问题中的联系人,这将允许您获取对象并查看是否有使用 EWS 的 ContactPhoto 附件。