We are trying to access outlook email through EWS via java code. For some of the email we are facing character reference issue.
Error message:
ParseError at [row,col]:[852,6] Message: Character reference "&#
Code snippet:
try {
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
ExchangeCredentials credentials = new WebCredentials(EMAIL_ID, EMAIL_PWD); service.setCredentials(credentials); service.setUrl(new URI("https://*****************/ews/exchange.asmx")); service.setTraceEnabled(true); ExtendedPropertyDefinition PR_TRANSPORT_MESSAGE_HEADERS = new ExtendedPropertyDefinition(0x007D,MapiPropertyType.String); PropertySet propset = new PropertySet(PropertySet.FirstClassProperties.getBasePropertySet(),ItemSchema.MimeContent,PR_TRANSPORT_MESSAGE_HEADERS); propset.setRequestedBodyType(BodyType.Text);
ItemView view = new ItemView(30);
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Descending);
FindItemsResults<Item> findResults;
findResults = service.findItems(WellKnownFolderName.Inbox,"Body:"+currency, view);
if (findResults.getTotalCount() == 0) {
logger.info("INFO:: There is eno emails available");
}
else {
for (Item item : findResults) {
EmailMessage message = EmailMessage.bind(service, item.getId(), new
PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Attachments));
EmailMessage message = EmailMessage.bind(service, item.getId(), propset);
item.load();
//emailBody = item.getBody().toString();
emailBody = message.getBody().toString();
logger.info("Email Body " + StringUtils.normalizeSpace(emailBody));
Date dateTimeReceived = item.getDateTimeReceived();
SimpleDateFormat fmt = new SimpleDateFormat("dd-MMM-yyyy");
Date todays_date = new Date();
resultList.add(emailBody);
}
item.delete(DeleteMode.MoveToDeletedItems);
}
}} catch (Exception e) {logger.info("Error in Executing outlookEmailRead : " +e.getMessage());}
POM dependency:
<dependency>
<groupId>com.microsoft.ews-java-api</groupId>
<artifactId>ews-java-api</artifactId>
<version>2.0</version>
</dependency>
I found it is a known issue from Microsoft https://github.com/OfficeDev/ews-java-api/issues/353
But not able to fix the issue.