From 3e10cf2c077814e676d58fc54c3c03d81493493f Mon Sep 17 00:00:00 2001 From: link2xt Date: Sun, 14 Jun 2026 01:54:58 +0200 Subject: [PATCH] feat: do not log the recipient list for sent messages --- .../tests/test_multidevice.py | 15 ++-------- src/smtp/send.rs | 29 +++++++++---------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/deltachat-rpc-client/tests/test_multidevice.py b/deltachat-rpc-client/tests/test_multidevice.py index 14470b6c0..3cec49bd3 100644 --- a/deltachat-rpc-client/tests/test_multidevice.py +++ b/deltachat-rpc-client/tests/test_multidevice.py @@ -37,19 +37,14 @@ def test_one_account_send_bcc_setting(acfactory, log, direct_imap): log.section("send out message without bcc to ourselves") ac1.set_config("bcc_self", "0") chat = ac1.create_chat(ac2) - self_addr = ac1.get_config("addr") - other_addr = ac2.get_config("addr") msg_out = chat.send_text("message1") assert not msg_out.get_snapshot().is_forwarded # wait for send out (no BCC) - ev = ac1.wait_for_event(EventType.SMTP_MESSAGE_SENT) + ac1.wait_for_event(EventType.SMTP_MESSAGE_SENT) assert ac1.get_config("bcc_self") == "0" - assert self_addr not in ev.msg - assert other_addr in ev.msg - log.section("ac1: setting bcc_self=1") ac1.set_config("bcc_self", "1") @@ -57,20 +52,16 @@ def test_one_account_send_bcc_setting(acfactory, log, direct_imap): msg_out = chat.send_text("message2") # wait for send out (BCC) - ev = ac1.wait_for_event(EventType.SMTP_MESSAGE_SENT) + ac1.wait_for_event(EventType.SMTP_MESSAGE_SENT) assert ac1.get_config("bcc_self") == "1" - # Second client receives only second message, but not the first. + # Second client receives only the second message, but not the first. ev_msg = ac1_clone.wait_for_event(EventType.MSGS_CHANGED) assert ac1_clone.get_message_by_id(ev_msg.msg_id).get_snapshot().text == "Messages are end-to-end encrypted." ev_msg = ac1_clone.wait_for_event(EventType.MSGS_CHANGED) assert ac1_clone.get_message_by_id(ev_msg.msg_id).get_snapshot().text == msg_out.get_snapshot().text - # now make sure we are sending message to ourselves too - assert self_addr in ev.msg - assert self_addr in ev.msg - # BCC-self messages are marked as seen by the sender device. while True: event = ac1.wait_for_event() diff --git a/src/smtp/send.rs b/src/smtp/send.rs index 8ba1b89ef..d48920c4f 100644 --- a/src/smtp/send.rs +++ b/src/smtp/send.rs @@ -40,31 +40,28 @@ impl Smtp { } let message_len_bytes = message.len(); - let recipients_display = recipients - .iter() - .map(|x| x.as_ref()) - .collect::>() - .join(","); let envelope = Envelope::new(self.from.clone(), recipients.to_vec()).map_err(Error::Envelope)?; let mail = SendableEmail::new(envelope, message); - if let Some(ref mut transport) = self.transport { - transport.send(mail).await.map_err(Error::SmtpSend)?; - - let info_msg = - format!("Message len={message_len_bytes} was SMTP-sent to {recipients_display}"); - info!(context, "{info_msg}."); - context.emit_event(EventType::SmtpMessageSent(info_msg)); - self.last_success = Some(tools::Time::now()); - } else { + let Some(ref mut transport) = self.transport else { warn!( context, - "uh? SMTP has no transport, failed to send to {}", recipients_display + "Failed to send a message because SMTP client has no SmtpTransport." ); return Err(Error::NoTransport); - } + }; + + transport.send(mail).await.map_err(Error::SmtpSend)?; + + let info_msg = format!( + "Message len={message_len_bytes} was SMTP-sent to {} recipients.", + recipients.len() + ); + info!(context, "{info_msg}."); + context.emit_event(EventType::SmtpMessageSent(info_msg)); + self.last_success = Some(tools::Time::now()); Ok(()) } }