如何在java中使用EWS从Exchange服务器获取文本中的电子邮件正文?

时间:2016-06-26 14:05:20

标签: java text exchange-server email-attachments

我有一个应用程序,使用EWS从Exchange中读取电子邮件。我的问题是要获取电子邮件的TEXT版本,而不是HTML版本。 我试过使用下面的代码。 " emailBody"我从Exchange Server获得的不是Text版本。我想只获取文本,而不是html标签。 所以请推荐任何方法来隐藏它。

    public Map readEmailItem(ItemId itemId){
       Map messageData = new HashMap();
       try{
       Item itm = Item.bind(service, itemId, pertySet.FirstClassProperties);
       EmailMessage emailMessage = EmailMessage.bind(service, itm.getId());
       messageData.put("emailItemId", emailMessage.getId().toString());
       messageData.put("subject", emailMessage.getSubject().toString());
       messageData.put("fromAddress",
                         emailMessage.getFrom().getAddress().toString());
       messageData.put("senderName",
                         emailMessage.getSender().getName().toString());
       Date dateTimeCreated = emailMessage.getDateTimeCreated();
       messageData.put("SendDate",dateTimeCreated.toString());
       Date dateTimeRecieved = emailMessage.getDateTimeReceived();
       messageData.put("RecievedDate",dateTimeRecieved.toString());
       messageData.put("Size",emailMessage.getSize()+"");
       messageData.put("emailBody",emailMessage.getBody().toString());
       }catch (Exception e) {
       e.printStackTrace();
       }
      return messageData;
    }

1 个答案:

答案 0 :(得分:0)

当您绑定到项目时,您需要指定您希望使用属性集类的文本正文,例如修改您的代码,如

PropertySet BindPropSet = new PropertySet(BasePropertySet.FirstClassProperties);
BindPropSet.RequestedBodyType = BodyType.Text;
Item itm = Item.bind(service, itemId, BindPropSet);