diff --git a/api/src/main/java/jakarta/mail/internet/MimeMultipart.java b/api/src/main/java/jakarta/mail/internet/MimeMultipart.java index 03f47293..c54be22b 100644 --- a/api/src/main/java/jakarta/mail/internet/MimeMultipart.java +++ b/api/src/main/java/jakarta/mail/internet/MimeMultipart.java @@ -806,9 +806,25 @@ protected synchronized void parse() throws MessagingException { int b2 = in.read(); if (b2 == '-') { if (in.read() == '-') { - complete = true; - done = true; - break; // ignore trailing text + int b3 = in.read(); + // skip linear whitespace + while (b3 == ' ' || b3 == '\t') + { b3 = in.read(); } + if (b3 == '\n' || b3 == '\r' || b3 == -1) + { + if(b3 == '\r') + { + // consume '\n' if it follows, so that next read + // starts from first character of the epilogue. + // useful if in future epilogue extraction is added + in.mark(1); + if (in.read() != '\n') + { in.reset(); } + } + complete = true; + done = true; + break; // ignore trailing text + } } } // skip linear whitespace