From 129cbccf8d9c13cbf027fb152a8fc0a47f588994 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 7 Jul 2023 16:35:34 +0200 Subject: [PATCH] Added support for multipart/digest --- .../main/java/javax/mail/internet/InternetHeaders.java | 2 +- app/src/main/java/javax/mail/internet/MimeMultipart.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/javax/mail/internet/InternetHeaders.java b/app/src/main/java/javax/mail/internet/InternetHeaders.java index 305e97968f..96b0e5d31e 100644 --- a/app/src/main/java/javax/mail/internet/InternetHeaders.java +++ b/app/src/main/java/javax/mail/internet/InternetHeaders.java @@ -434,7 +434,7 @@ public class InternetHeaders { } prevline = line; } - if (first && android.text.TextUtils.isEmpty(line) && is instanceof ByteArrayInputStream) { + if (false && first && android.text.TextUtils.isEmpty(line) && is instanceof ByteArrayInputStream) { // RFC1341 section 7.2.1 // Note that the encapsulation boundary must occur at the beginning of a line, i.e., following a CRLF, // and that that initial CRLF is considered to be part of the encapsulation boundary rather than part of the preceding part. diff --git a/app/src/main/java/javax/mail/internet/MimeMultipart.java b/app/src/main/java/javax/mail/internet/MimeMultipart.java index e71fc91d50..ab9ff76849 100644 --- a/app/src/main/java/javax/mail/internet/MimeMultipart.java +++ b/app/src/main/java/javax/mail/internet/MimeMultipart.java @@ -873,6 +873,14 @@ public class MimeMultipart extends Multipart { buf.write(inbuf, 0, inSize); part = createMimeBodyPart(headers, buf.toByteArray()); } + try { + // https://www.rfc-editor.org/rfc/rfc1521.html#section-7.2.4 + ContentType ct = new ContentType(getContentType()); + if ("multipart/digest".equalsIgnoreCase(ct.getBaseType())) + part.setHeader("Content-Type", "message/rfc822"); + } catch (Throwable ex) { + eu.faircode.email.Log.e(ex); + } super.addBodyPart(part); } } catch (IOException ioex) {