diff --git a/app/src/main/java/eu/faircode/email/MimeMessageEx.java b/app/src/main/java/eu/faircode/email/MimeMessageEx.java index d6c7b7896d..8b8abb3eea 100644 --- a/app/src/main/java/eu/faircode/email/MimeMessageEx.java +++ b/app/src/main/java/eu/faircode/email/MimeMessageEx.java @@ -19,8 +19,6 @@ package eu.faircode.email; Copyright 2018-2019 by Marcel Bokhorst (M66B) */ -import java.io.InputStream; - import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.internet.MimeMessage; @@ -33,11 +31,6 @@ public class MimeMessageEx extends MimeMessage { this.msgid = msgid; } - MimeMessageEx(Session session, InputStream is, String msgid) throws MessagingException { - super(session, is); - this.msgid = msgid; - } - @Override public String getMessageID() throws MessagingException { if (this.msgid == null) diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 07ba148061..1e2096b6de 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1848,14 +1848,15 @@ public class ServiceSynchronize extends LifecycleService { imessage.writeTo(bos); // Deserialize target message - // Make sure the message has a message ID ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); - String msgid = message.msgid; - if (msgid == null) { - msgid = EntityMessage.generateMessageId(); + Message icopy = new MimeMessage(isession, bis); + + // Make sure the message has a message ID + if (message.msgid == null) { + String msgid = EntityMessage.generateMessageId(); Log.i(target.name + " generated message id=" + msgid); + icopy.setHeader("Message-ID", msgid); } - Message icopy = new MimeMessageEx(isession, bis, msgid); try { // Needed to read flags @@ -2203,11 +2204,15 @@ public class ServiceSynchronize extends LifecycleService { return uids[0].uid; } else { ifolder.appendMessages(new Message[]{imessage}); + long uid = -1; - Message[] messages = ifolder.search(new MessageIDTerm(imessage.getMessageID())); + String msgid = imessage.getMessageID(); + Log.i("Searching for appended msgid=" + msgid); + Message[] messages = ifolder.search(new MessageIDTerm(msgid)); if (messages != null) for (Message iappended : messages) { long muid = ifolder.getUID(iappended); + Log.i("Found appended uid=" + muid); // RFC3501: Unique identifiers are assigned in a strictly ascending fashion if (muid > uid) uid = muid;