Sumit Agrawal created EMAIL-173: ----------------------------------- Summary: In case of multipart/alternative consider alternatives if one of them is corrupted Key: EMAIL-173 URL: https://issues.apache.org/jira/browse/EMAIL-173 Project: Commons Email Issue Type: Bug Reporter: Sumit Agrawal
In case of multipart/alternative, it can happen that some of the alternatives are corrupted. In such cases rather than throwing an exception for malformed part, it makes sense to use one of the well-formed alternatives. The code in question is here: https://commons.apache.org/proper/commons-email/apidocs/src-html/org/apache/commons/mail/util/MimeMessageParser.html line 192. The patch should look something like this {code:java} if (isMimeType(part, "multipart/alternative")) { this.isMultiPart = true; final Multipart mp = (Multipart) part.getContent(); final int count = mp.getCount(); // iterate over all MimeBodyPart int failureCount = 0; for (int i = 0; i < count; i++) { try { parse(mp, (MimeBodyPart) mp.getBodyPart(i)); } catch (Exception e) { // LOG this error failureCount++; } } if (failureCount == count) { // if all of them failed. throw new IOException(); // with reason } } if (isMimeType(part, "multipart/*")) { // normal flow } {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)