Skip to content

Commit ab81f71

Browse files
committed
feat: Don't mark MDNs as IMAP-seen
Marking MDNs as seen is useless, they shouldn't be displayed by any MUA.
1 parent 019d604 commit ab81f71

File tree

2 files changed

+15
-19
lines changed

2 files changed

+15
-19
lines changed

python/tests/test_1_online.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -572,9 +572,6 @@ def test_send_and_receive_message_markseen(acfactory, lp):
572572
assert ev.data2 > dc.const.DC_MSG_ID_LAST_SPECIAL
573573
lp.step("2")
574574

575-
# Check that ac1 marks the read receipt as read.
576-
ac1._evtracker.get_info_contains("Marked messages .* in folder INBOX as seen.")
577-
578575
assert msg1.is_out_mdn_received()
579576
assert msg3.is_out_mdn_received()
580577

@@ -655,7 +652,7 @@ def test_message_override_sender_name(acfactory, lp):
655652

656653

657654
@pytest.mark.parametrize("mvbox_move", [True, False])
658-
def test_markseen_message_and_mdn(acfactory, mvbox_move):
655+
def test_markseen_message(acfactory, mvbox_move):
659656
# Please only change this test if you are very sure that it will still catch the issues it catches now.
660657
# We had so many problems with markseen, if in doubt, rather create another test, it can't harm.
661658
ac1 = acfactory.new_online_configuring_account(mvbox_move=mvbox_move)
@@ -674,16 +671,16 @@ def test_markseen_message_and_mdn(acfactory, mvbox_move):
674671
ac2.mark_seen_messages([msg])
675672

676673
folder = "mvbox" if mvbox_move else "inbox"
677-
for ac in [ac1, ac2]:
678-
if mvbox_move:
679-
ac._evtracker.get_info_contains("Marked messages [0-9]+ in folder DeltaChat as seen.")
680-
else:
681-
ac._evtracker.get_info_contains("Marked messages [0-9]+ in folder INBOX as seen.")
674+
if mvbox_move:
675+
ac2._evtracker.get_info_contains("Marked messages [0-9]+ in folder DeltaChat as seen.")
676+
else:
677+
ac2._evtracker.get_info_contains("Marked messages [0-9]+ in folder INBOX as seen.")
678+
ac1._evtracker.get_matching("DC_EVENT_MSG_READ")
682679
ac1.direct_imap.select_config_folder(folder)
683680
ac2.direct_imap.select_config_folder(folder)
684681

685-
# Check that the mdn is marked as seen
686-
assert len(list(ac1.direct_imap.conn.fetch(AND(seen=True)))) == 1
682+
# Check that the mdn isn't marked as seen
683+
assert len(list(ac1.direct_imap.conn.fetch(AND(seen=True)))) == 0
687684
# Check original message is marked as seen
688685
assert len(list(ac2.direct_imap.conn.fetch(AND(seen=True)))) == 1
689686

@@ -730,6 +727,9 @@ def test_mdn_asymmetric(acfactory, lp):
730727

731728
assert len(chat.get_messages()) == 1 + E2EE_INFO_MSGS
732729

730+
# Wait for the message to be marked as seen on IMAP.
731+
ac1._evtracker.get_info_contains("Marked messages [0-9]+ in folder DeltaChat as seen.")
732+
733733
lp.sec("disable ac1 MDNs")
734734
ac1.set_config("mdns_enabled", "0")
735735

@@ -741,16 +741,17 @@ def test_mdn_asymmetric(acfactory, lp):
741741
lp.sec("ac2: mark incoming message as seen")
742742
ac2.mark_seen_messages([msg])
743743

744+
# Wait for the message to be marked as seen on IMAP.
745+
ac2._evtracker.get_info_contains("Marked messages [0-9]+ in folder INBOX as seen.")
746+
744747
lp.sec("ac1: waiting for incoming activity")
745748
# MDN should be moved even though MDNs are already disabled
746749
ac1._evtracker.get_matching("DC_EVENT_IMAP_MESSAGE_MOVED")
747750

748751
assert len(chat.get_messages()) == 1 + E2EE_INFO_MSGS
749752

750-
# Wait for the message to be marked as seen on IMAP.
751-
ac1._evtracker.get_info_contains("Marked messages [0-9]+ in folder DeltaChat as seen.")
752-
753753
# MDN is received even though MDNs are already disabled
754+
ac1._evtracker.get_matching("DC_EVENT_MSG_READ")
754755
assert msg_out.is_out_mdn_received()
755756

756757
ac1.direct_imap.select_config_folder("mvbox")

src/receive_imf.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -993,11 +993,6 @@ pub(crate) async fn receive_imf_inner(
993993
)
994994
.await?;
995995
}
996-
if target.is_none() && !mime_parser.mdn_reports.is_empty() && mime_parser.has_chat_version()
997-
{
998-
// This is a Delta Chat MDN. Mark as read.
999-
markseen_on_imap_table(context, rfc724_mid_orig).await?;
1000-
}
1001996
}
1002997

1003998
if mime_parser.is_call() {

0 commit comments

Comments
 (0)