feat: Don't mark messages as seen on IMAP if bcc_self=0 or bot=1

bcc_self=0 means that the user disabled it or it's a chatmail setup with the only device and w/o
backups. If a backup is made someday, old messages not marked as IMAP-seen aren't a problem and new
ones are marked as IMAP-seen.

For bots, particularly multi-device ones (which are a rare case), probably no sane logic can be
built on the "seen" message status. Moreover, if the user has additionally a bot that reads incoming
messages, it doesn't mean that the user doesn't want to read them too.
This commit is contained in:
iequidoo
2025-09-16 03:49:11 -03:00
parent 3c25e4b726
commit 42cebed9cd
3 changed files with 10 additions and 4 deletions

View File

@@ -2096,6 +2096,11 @@ async fn mark_seen_by_uid(
/// Schedule marking the message as Seen on IMAP by adding all known IMAP messages corresponding to
/// the given Message-ID to `imap_markseen` table.
pub(crate) async fn markseen_on_imap_table(context: &Context, message_id: &str) -> Result<()> {
if !context.get_config_bool(Config::BccSelf).await?
|| context.get_config_bool(Config::Bot).await?
{
return Ok(());
}
context
.sql
.execute(