diff --git a/app/src/main/java/eu/faircode/email/ActivityEML.java b/app/src/main/java/eu/faircode/email/ActivityEML.java index 20315274b5..3deff1b2b7 100644 --- a/app/src/main/java/eu/faircode/email/ActivityEML.java +++ b/app/src/main/java/eu/faircode/email/ActivityEML.java @@ -265,7 +265,7 @@ public class ActivityEML extends ActivityBase { result.sent = helper.getSent(); result.received = helper.getReceived(); result.subject = helper.getSubject(); - result.parts = helper.getMessageParts(); + result.parts = helper.getMessageParts(false); String html = result.parts.getHtml(context); if (html != null) { diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 1cf87a37f4..8b36824d8f 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -1938,6 +1938,18 @@ public class MessageHelper { return false; } + void normalize() { + Boolean plain = isPlainOnly(); + if (plain == null || plain) + for (AttachmentPart apart : attachments) + if (!TextUtils.isEmpty(apart.attachment.cid) || + !Part.ATTACHMENT.equals(apart.attachment.disposition)) { + Log.i("Normalizing " + apart.attachment); + apart.attachment.cid = null; + apart.attachment.disposition = Part.ATTACHMENT; + } + } + Long getBodySize() throws MessagingException { Long size = null; @@ -2542,6 +2554,10 @@ public class MessageHelper { } MessageParts getMessageParts() throws IOException, MessagingException { + return getMessageParts(true); + } + + MessageParts getMessageParts(boolean normalize) throws IOException, MessagingException { MessageParts parts = new MessageParts(); try { @@ -2678,6 +2694,9 @@ public class MessageHelper { */ } + if (normalize) + parts.normalize(); + return parts; }