mirror of
https://github.com/chatmail/core.git
synced 2026-05-03 05:16:28 +03:00
Update uid_next if the server rewinded it
fix #2188 Also, if we notice that the server started reusing old UIDs, _also_ do a `ResyncFolders`, because the server likely forgot to change uid_validity
This commit is contained in:
@@ -575,6 +575,15 @@ impl Imap {
|
|||||||
// new messages is only one command, just as a SELECT command)
|
// new messages is only one command, just as a SELECT command)
|
||||||
true
|
true
|
||||||
} else if let Some(uid_next) = mailbox.uid_next {
|
} else if let Some(uid_next) = mailbox.uid_next {
|
||||||
|
if uid_next < old_uid_next {
|
||||||
|
warn!(
|
||||||
|
context,
|
||||||
|
"The server illegally decreased the uid_next of folder {} from {} to {} without changing validity ({}), resyncing UIDs...",
|
||||||
|
folder, old_uid_next, uid_next, new_uid_validity,
|
||||||
|
);
|
||||||
|
set_uid_next(context, folder, uid_next).await?;
|
||||||
|
job::schedule_resync(context).await;
|
||||||
|
}
|
||||||
uid_next != old_uid_next // If uid_next changed, there are new emails
|
uid_next != old_uid_next // If uid_next changed, there are new emails
|
||||||
} else {
|
} else {
|
||||||
true // We have no uid_next and if in doubt, return true
|
true // We have no uid_next and if in doubt, return true
|
||||||
|
|||||||
Reference in New Issue
Block a user