我怎样才能使用EWS获得最新的电子邮件邮件正文

时间:2017-12-21 13:56:05

标签: java outlook exchange-server exchangewebservices

这是我的代码:

PropertySet itempropertyset = new PropertySet(BasePropertySet.FirstClassProperties);
itempropertyset.setRequestedBodyType(BodyType.Text); 
ItemView itemview = new ItemView(100);
itemview.setPropertySet(itempropertyset); 
SearchFilter srchFilter = new SearchFilter.IsGreaterThan(ItemSchema.DateTimeReceived, d.parse(date));
FindItemsResults<Item> results = service.findItems(folder.getId(),srchFilter,itemview)
for (Item item : results) {

ItemId itemId = item.getId();
Item itm = Item.bind(service, itemId,PropertySet.FirstClassProperties);
item.load(itempropertyset);
System.out.println("item.getBody():: "+item.getBody());
}

item.getBody()从邮件链中打印所有电子邮件邮件。我想只获取最新的一个电子邮件正文(顶级电子邮件正文)。

2 个答案:

答案 0 :(得分:0)

EWS不会为你做这个,因为它的API唯一的工作就是返回body属性的实际内容。因为你的要求有很多差异(例如,如果有人做内联响应会发生什么),你需要考虑使用另一个库来扫描和检测那种类型的东西,例如http://blog.mailgun.com/open-sourcing-our-email-signature-parsing-library/,但从技术角度看它的基础非常困难。

答案 1 :(得分:0)

通过service.findItems返回所有您感兴趣的电子邮件,并按getDateTimeReceived()的顺序排序,并获得列表中的第一个EmailMessage对象?