diff --git a/src/imap.rs b/src/imap.rs index d72eee3eb..75b9a8546 100644 --- a/src/imap.rs +++ b/src/imap.rs @@ -2248,11 +2248,16 @@ pub(crate) async fn prefetch_should_download( message_id: &str, mut flags: impl Iterator>, ) -> Result { - if message::rfc724_mid_exists(context, message_id) - .await? - .is_some() + if let Some((.., seen)) = message::rfc724_mid_exists_ex( + context, + 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); }