Fixed reappearing POP3 messages

This commit is contained in:
M66B 2022-11-22 14:20:41 +01:00
parent 962104a116
commit f20c080a1c
2 changed files with 16 additions and 12 deletions

View File

@ -3136,9 +3136,8 @@ class Core {
for (int i = imessages.length - max; i < imessages.length; i++) {
Message imessage = imessages[i];
MessageHelper helper = new MessageHelper((MimeMessage) imessage, context);
String msgid = helper.getMessageID(); // expensive!
if (!TextUtils.isEmpty(msgid))
known.remove(msgid);
String msgid = helper.getPOP3MessageID(); // expensive!
known.remove(msgid);
}
for (TupleUidl uidl : known.values())
@ -3175,15 +3174,7 @@ class Core {
}
} else {
uidl = null;
msgid = helper.getMessageID();
if (TextUtils.isEmpty(msgid)) {
Long time = helper.getSent();
if (time == null)
msgid = helper.getHash();
else
msgid = Long.toString(time);
}
msgid = helper.getPOP3MessageID();
}
if (TextUtils.isEmpty(msgid)) {

View File

@ -1277,6 +1277,19 @@ public class MessageHelper {
return (header == null ? null : MimeUtility.unfold(header));
}
@NonNull
String getPOP3MessageID() throws MessagingException {
String msgid = getMessageID();
if (TextUtils.isEmpty(msgid)) {
Long time = getSent();
if (time == null)
msgid = getHash();
else
msgid = Long.toString(time);
}
return msgid;
}
List<Header> getAllHeaders() throws MessagingException {
ensureHeaders();
return Collections.list(imessage.getAllHeaders());