Workaround for Kerio Outlook Connector

master
M66B 2 months ago
parent 5dd76576fb
commit 1eacdcca50

@ -5213,13 +5213,31 @@ public class MessageHelper {
// https://datatracker.ietf.org/doc/html/rfc2634#section-2
} else {
if (TextUtils.isEmpty(smimeType)) {
String name = ct.getParameter("name");
if ("smime.p7m".equalsIgnoreCase(name)) {
getMessageParts(null, part, parts, EntityAttachment.SMIME_MESSAGE);
return parts;
} else if ("smime.p7s".equalsIgnoreCase(name)) {
getMessageParts(null, part, parts, EntityAttachment.SMIME_SIGNED_DATA);
return parts;
String xmailer = imessage.getHeader("X-Mailer", null);
if (xmailer != null && xmailer.contains("Kerio Outlook Connector")) {
Object content = tryParseMultipart(Helper.readStream(part.getInputStream()), part.getContentType());
if (content instanceof Multipart) {
Multipart multipart = (Multipart) content;
int count = multipart.getCount();
for (int i = 0; i < count; i++)
try {
BodyPart child = multipart.getBodyPart(i);
getMessageParts(part, child, parts, null);
} catch (ParseException ex) {
Log.w(ex);
parts.warnings.add(Log.formatThrowable(ex, false));
}
return parts;
}
} else {
String name = ct.getParameter("name");
if ("smime.p7m".equalsIgnoreCase(name)) {
getMessageParts(null, part, parts, EntityAttachment.SMIME_MESSAGE);
return parts;
} else if ("smime.p7s".equalsIgnoreCase(name)) {
getMessageParts(null, part, parts, EntityAttachment.SMIME_SIGNED_DATA);
return parts;
}
}
}
StringBuilder sb = new StringBuilder();

Loading…
Cancel
Save