IMAP: workaround for broken message headers on Exchange 2010

git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@2014 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
mguessan 2012-09-06 22:20:12 +00:00
parent e0db84a369
commit 1122214601
1 changed files with 5 additions and 3 deletions

View File

@ -377,11 +377,13 @@ public class EwsExchangeSession extends ExchangeSession {
EWSMethod.Item item = getItemMethod.getResponseItem(); EWSMethod.Item item = getItemMethod.getResponseItem();
String messageHeaders = item.get(Field.get("messageheaders").getResponseName()); String messageHeaders = item.get(Field.get("messageheaders").getResponseName());
if (messageHeaders != null) { if (messageHeaders != null
// workaround for broken message headers on Exchange 2010
&& messageHeaders.toLowerCase().contains("message-id:")) {
// workaround for messages in Sent folder // workaround for messages in Sent folder
if (messageHeaders.indexOf("From:") < 0) { if (messageHeaders.indexOf("From:") < 0) {
String from = item.get(Field.get("from").getResponseName()); String from = item.get(Field.get("from").getResponseName());
messageHeaders = "From: "+from+"\n"+messageHeaders; messageHeaders = "From: " + from + "\n" + messageHeaders;
} }
result = new ByteArrayInputStream(messageHeaders.getBytes("UTF-8")); result = new ByteArrayInputStream(messageHeaders.getBytes("UTF-8"));
@ -541,7 +543,7 @@ public class EwsExchangeSession extends ExchangeSession {
LOGGER.warn("GetItem with MimeContent failed: " + e.getMessage()); LOGGER.warn("GetItem with MimeContent failed: " + e.getMessage());
} }
if (getItemMethod.getStatusCode() == HttpStatus.SC_NOT_FOUND) { if (getItemMethod.getStatusCode() == HttpStatus.SC_NOT_FOUND) {
throw new HttpNotFoundException("Item "+itemId+" not found"); throw new HttpNotFoundException("Item " + itemId + " not found");
} }
if (mimeContent == null) { if (mimeContent == null) {
LOGGER.warn("MimeContent not available, trying to rebuild from properties"); LOGGER.warn("MimeContent not available, trying to rebuild from properties");