diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 32781da620..739e592a8b 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -941,13 +941,17 @@ class Core { // Cross account move if (!file.exists()) throw new IllegalArgumentException("raw message file not found"); - if (TextUtils.isEmpty(message.msgid)) - throw new IllegalArgumentException("Message-ID missing"); Log.i(folder.name + " reading " + file); try (InputStream is = new BufferedInputStream(new FileInputStream(file))) { imessage = new MimeMessage(isession, is); } + + // Check message ID to check raw message file content + MessageHelper helper = new MessageHelper(imessage, context); + String msgid = helper.getMessageID(); + if (TextUtils.isEmpty(message.msgid) || !Objects.equals(message.msgid, msgid)) + throw new IllegalArgumentException("Inconsistent msgid=" + message.msgid + "/" + msgid); } db.message().setMessageRaw(message.id, true);