From 2275208413e536ab4b91fed0e50e4a550aad7ebc Mon Sep 17 00:00:00 2001 From: iequidoo Date: Tue, 16 Sep 2025 03:55:31 -0300 Subject: [PATCH] feat: Don't mark MDNs as IMAP-seen Marking MDNs as seen is useless, they shouldn't be displayed by any MUA. --- python/tests/test_1_online.py | 13 +++++++------ src/receive_imf.rs | 5 ----- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/python/tests/test_1_online.py b/python/tests/test_1_online.py index a36e9f797..c8b88ba27 100644 --- a/python/tests/test_1_online.py +++ b/python/tests/test_1_online.py @@ -422,9 +422,6 @@ def test_send_and_receive_message_markseen(acfactory, lp): assert ev.data2 > dc.const.DC_MSG_ID_LAST_SPECIAL lp.step("2") - # Check that ac1 marks the read receipt as read. - ac1._evtracker.get_info_contains("Marked messages .* in folder INBOX as seen.") - assert msg1.is_out_mdn_received() assert msg3.is_out_mdn_received() @@ -513,6 +510,9 @@ def test_mdn_asymmetric(acfactory, lp): assert len(chat.get_messages()) == 1 + E2EE_INFO_MSGS + # Wait for the message to be marked as seen on IMAP. + ac1._evtracker.get_info_contains("Marked messages [0-9]+ in folder DeltaChat as seen.") + lp.sec("disable ac1 MDNs") ac1.set_config("mdns_enabled", "0") @@ -524,13 +524,14 @@ def test_mdn_asymmetric(acfactory, lp): lp.sec("ac2: mark incoming message as seen") ac2.mark_seen_messages([msg]) + # Wait for the message to be marked as seen on IMAP. + ac2._evtracker.get_info_contains("Marked messages [0-9]+ in folder INBOX as seen.") + lp.sec("ac1: waiting for incoming activity") assert len(chat.get_messages()) == 1 + E2EE_INFO_MSGS - # Wait for the message to be marked as seen on IMAP. - ac1._evtracker.get_info_contains("Marked messages [0-9]+ in folder INBOX as seen.") - # MDN is received even though MDNs are already disabled + ac1._evtracker.get_matching("DC_EVENT_MSG_READ") assert msg_out.is_out_mdn_received() diff --git a/src/receive_imf.rs b/src/receive_imf.rs index 9208ff10b..70f635664 100644 --- a/src/receive_imf.rs +++ b/src/receive_imf.rs @@ -981,11 +981,6 @@ UPDATE config SET value=? WHERE keyname='configured_addr' AND value!=?1 .await?; context.scheduler.interrupt_inbox().await; } - if target.is_none() && !mime_parser.mdn_reports.is_empty() && mime_parser.has_chat_version() - { - // This is a Delta Chat MDN. Mark as read. - markseen_on_imap_table(context, rfc724_mid_orig).await?; - } if !mime_parser.incoming && !context.get_config_bool(Config::TeamProfile).await? { let mut updated_chats = BTreeMap::new(); let mut archived_chats_maybe_noticed = false;