【问题标题】:how can i get only latest email mail body using EWS如何使用 EWS 仅获取最新的电子邮件正文
【发布时间】:2017-12-21 13:56:05
【问题描述】:

这是我的代码:

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() 打印邮件链中的所有邮件邮件正文。我只想获取最新的一封电子邮件正文(顶部电子邮件正文)。

【问题讨论】:

    标签: java outlook exchange-server exchangewebservices


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      通过service.findItems返回所有你感兴趣的邮件,并按getDateTimeReceived()降序排序,得到列表中的第一个EmailMessageobj?

      【讨论】:

        猜你喜欢
        • 2020-07-04
        • 2019-09-13
        • 2015-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-12
        • 1970-01-01
        • 2011-10-03
        相关资源
        最近更新 更多