fix: Don't mark message as IMAP-seen if it already exists, but has state < InSeen

The message may not exist on another device.
This commit is contained in:
iequidoo
2025-09-16 03:51:07 -03:00
parent ce32799f87
commit d60a9605ae

View File

@@ -2248,11 +2248,16 @@ pub(crate) async fn prefetch_should_download(
message_id: &str, message_id: &str,
mut flags: impl Iterator<Item = Flag<'_>>, mut flags: impl Iterator<Item = Flag<'_>>,
) -> Result<bool> { ) -> Result<bool> {
if message::rfc724_mid_exists(context, message_id) if let Some((.., seen)) = message::rfc724_mid_exists_ex(
.await? context,
.is_some() message_id,
"state>=16", // `InSeen`
)
.await?
{ {
markseen_on_imap_table(context, message_id).await?; if seen {
markseen_on_imap_table(context, message_id).await?;
}
return Ok(false); return Ok(false);
} }