mirror of https://github.com/M66B/FairEmail.git
Fixed duplicate message IDs
This commit is contained in:
parent
6f06d88082
commit
3826ca76d5
|
@ -1180,19 +1180,17 @@ public class ServiceSynchronize extends LifecycleService {
|
||||||
EntityMessage message = db.message().getMessageByUid(folder.id, uid);
|
EntityMessage message = db.message().getMessageByUid(folder.id, uid);
|
||||||
|
|
||||||
// Find by Message-ID
|
// Find by Message-ID
|
||||||
// - messages in archive have same id as original
|
|
||||||
// - messages in inbox have same id as message sent to self
|
// - messages in inbox have same id as message sent to self
|
||||||
|
// - messages in archive have same id as original
|
||||||
if (message == null &&
|
if (message == null &&
|
||||||
|
!EntityFolder.SENT.equals(folder.type) &&
|
||||||
!EntityFolder.ARCHIVE.equals(folder.type)) {
|
!EntityFolder.ARCHIVE.equals(folder.type)) {
|
||||||
String msgid = imessage.getMessageID();
|
String msgid = imessage.getMessageID(); // Will fetch headers
|
||||||
message = db.message().getMessageByMsgId(folder.account, msgid);
|
message = db.message().getMessageByMsgId(msgid);
|
||||||
if (message != null) {
|
if (message != null) {
|
||||||
Log.i(Helper.TAG, folder.name + " found as id=" + message.id + " uid=" + message.uid + " msgid=" + msgid);
|
Log.i(Helper.TAG, folder.name + " found as id=" + message.id + " uid=" + message.uid + " msgid=" + msgid);
|
||||||
|
message.folder = folder.id;
|
||||||
message.uid = uid;
|
message.uid = uid;
|
||||||
if (EntityFolder.SENT.equals(folder.type)) {
|
|
||||||
Log.i(Helper.TAG, folder.name + " move from outbox");
|
|
||||||
message.folder = folder.id; // outbox to sent
|
|
||||||
}
|
|
||||||
db.message().updateMessage(message);
|
db.message().updateMessage(message);
|
||||||
/*
|
/*
|
||||||
if (message.uid == null) {
|
if (message.uid == null) {
|
||||||
|
@ -1220,7 +1218,14 @@ public class ServiceSynchronize extends LifecycleService {
|
||||||
message.account = folder.account;
|
message.account = folder.account;
|
||||||
message.folder = folder.id;
|
message.folder = folder.id;
|
||||||
message.uid = uid;
|
message.uid = uid;
|
||||||
message.msgid = helper.getMessageID();
|
|
||||||
|
if (!EntityFolder.SENT.equals(folder.type) &&
|
||||||
|
!EntityFolder.ARCHIVE.equals(folder.type)) {
|
||||||
|
message.msgid = helper.getMessageID();
|
||||||
|
if (TextUtils.isEmpty(message.msgid))
|
||||||
|
Log.w(Helper.TAG, "No Message-ID id=" + message.id + " uid=" + message.uid);
|
||||||
|
}
|
||||||
|
|
||||||
message.references = TextUtils.join(" ", helper.getReferences());
|
message.references = TextUtils.join(" ", helper.getReferences());
|
||||||
message.inreplyto = helper.getInReplyTo();
|
message.inreplyto = helper.getInReplyTo();
|
||||||
message.thread = helper.getThreadId(uid);
|
message.thread = helper.getThreadId(uid);
|
||||||
|
@ -1240,9 +1245,6 @@ public class ServiceSynchronize extends LifecycleService {
|
||||||
message.id = db.message().insertMessage(message);
|
message.id = db.message().insertMessage(message);
|
||||||
Log.v(Helper.TAG, folder.name + " added id=" + message.id + " uid=" + message.uid);
|
Log.v(Helper.TAG, folder.name + " added id=" + message.id + " uid=" + message.uid);
|
||||||
|
|
||||||
if (TextUtils.isEmpty(message.msgid))
|
|
||||||
Log.w(Helper.TAG, "No Message-ID id=" + message.id + " uid=" + message.uid);
|
|
||||||
|
|
||||||
int sequence = 0;
|
int sequence = 0;
|
||||||
for (EntityAttachment attachment : helper.getAttachments()) {
|
for (EntityAttachment attachment : helper.getAttachments()) {
|
||||||
sequence++;
|
sequence++;
|
||||||
|
|
Loading…
Reference in New Issue