diff --git a/src/java/davmail/exchange/ews/EwsExchangeSession.java b/src/java/davmail/exchange/ews/EwsExchangeSession.java index 26f76d10..1b734753 100644 --- a/src/java/davmail/exchange/ews/EwsExchangeSession.java +++ b/src/java/davmail/exchange/ews/EwsExchangeSession.java @@ -158,7 +158,6 @@ public class EwsExchangeSession extends ExchangeSession { protected Message buildMessage(EWSMethod.Item response) throws URIException { Message message = new Message(); - message.size = response.getInt(FIELD_MAP.get("messageSize").getResponseName()); message.uid = response.get(FIELD_MAP.get("uid").getResponseName()); message.imapUid = response.getLong(FIELD_MAP.get("imapUid").getResponseName()); diff --git a/src/java/davmail/imap/ImapConnection.java b/src/java/davmail/imap/ImapConnection.java index 53c3db9b..b08043ad 100644 --- a/src/java/davmail/imap/ImapConnection.java +++ b/src/java/davmail/imap/ImapConnection.java @@ -649,6 +649,10 @@ public class ImapConnection extends AbstractConnection { MimePart bodyPart = mimeMessage; String[] partIndexStrings = partIndexString.split("\\."); for (String subPartIndexString : partIndexStrings) { + // ignore MIME subpart index, will return full part + if ("MIME".equals(subPartIndexString)) { + break; + } int subPartIndex; // try to parse part index try { diff --git a/src/test/davmail/imap/TestImap.java b/src/test/davmail/imap/TestImap.java index 25aab9ec..98066fe3 100644 --- a/src/test/davmail/imap/TestImap.java +++ b/src/test/davmail/imap/TestImap.java @@ -224,6 +224,11 @@ public class TestImap extends AbstractDavMailTestCase { assertEquals(". OK UID FETCH completed",readFullAnswer(".")); } + public void testPartialFetch() throws IOException { + writeLine(". UID FETCH "+messageUid+" (BODY.PEEK[1.MIME])"); + assertEquals(". OK UID FETCH completed",readFullAnswer(".")); + } + public void testDeleteFolder() throws IOException { writeLine(". DELETE testfolder");