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)