diff --git a/deltachat-ffi/deltachat.h b/deltachat-ffi/deltachat.h
index adbf816683..b45e3ec5e9 100644
--- a/deltachat-ffi/deltachat.h
+++ b/deltachat-ffi/deltachat.h
@@ -436,10 +436,10 @@ char* dc_get_blobdir (const dc_context_t* context);
* 0=watch all folders normally (default)
* - `show_emails` = DC_SHOW_EMAILS_OFF (0)=
* show direct replies to chats only,
- * DC_SHOW_EMAILS_ACCEPTED_CONTACTS (1)=
- * also show all mails of confirmed contacts,
+ * DC_SHOW_EMAILS_ALL1 (1)=
+ * deprecated, same as DC_SHOW_EMAILS_ALL,
* DC_SHOW_EMAILS_ALL (2)=
- * also show mails of unconfirmed contacts (default).
+ * show all mails (default).
* - `delete_device_after` = 0=do not delete messages from device automatically (default),
* >=1=seconds, after which messages are deleted automatically from the device.
* Messages in the "saved messages" chat (see dc_chat_is_self_talk()) are skipped.
@@ -6582,7 +6582,7 @@ void dc_event_unref(dc_event_t* event);
* Values for dc_get|set_config("show_emails")
*/
#define DC_SHOW_EMAILS_OFF 0
-#define DC_SHOW_EMAILS_ACCEPTED_CONTACTS 1
+#define DC_SHOW_EMAILS_ALL1 1
#define DC_SHOW_EMAILS_ALL 2
diff --git a/deltachat-rpc-client/src/deltachat_rpc_client/const.py b/deltachat-rpc-client/src/deltachat_rpc_client/const.py
index 2ca3c9f2c0..cd4974bb4e 100644
--- a/deltachat-rpc-client/src/deltachat_rpc_client/const.py
+++ b/deltachat-rpc-client/src/deltachat_rpc_client/const.py
@@ -234,7 +234,6 @@ class ShowEmails(IntEnum):
"""Show emails mode."""
OFF = 0
- ACCEPTED_CONTACTS = 1
ALL = 2
diff --git a/src/constants.rs b/src/constants.rs
index d4a1e326f3..a8973a4de6 100644
--- a/src/constants.rs
+++ b/src/constants.rs
@@ -45,8 +45,12 @@ pub enum Blocked {
#[repr(u8)]
pub enum ShowEmails {
Off = 0,
- AcceptedContacts = 1,
- #[default] // also change Config.ShowEmails props(default) on changes
+
+ /// Deprecated 2025-04-16, same as All.
+ All1 = 1,
+
+ // also change Config.ShowEmails props(default) on changes
+ #[default]
All = 2,
}
@@ -253,10 +257,7 @@ mod tests {
// values may be written to disk and must not change
assert_eq!(ShowEmails::All, ShowEmails::default());
assert_eq!(ShowEmails::Off, ShowEmails::from_i32(0).unwrap());
- assert_eq!(
- ShowEmails::AcceptedContacts,
- ShowEmails::from_i32(1).unwrap()
- );
+ assert_eq!(ShowEmails::All1, ShowEmails::from_i32(1).unwrap());
assert_eq!(ShowEmails::All, ShowEmails::from_i32(2).unwrap());
}
diff --git a/src/contact.rs b/src/contact.rs
index 08174f9e00..679ac6a4a1 100644
--- a/src/contact.rs
+++ b/src/contact.rs
@@ -501,14 +501,12 @@ pub enum Origin {
MailinglistAddress = 0x2,
/// Hidden on purpose, e.g. addresses with the word "noreply" in it
+ /// or past members of the groups.
Hidden = 0x8,
/// From: of incoming messages of unknown sender
IncomingUnknownFrom = 0x10,
- /// Cc: of incoming messages of unknown sender
- IncomingUnknownCc = 0x20,
-
/// To: of incoming messages of unknown sender
IncomingUnknownTo = 0x40,
@@ -522,21 +520,9 @@ pub enum Origin {
/// Contacts with at least this origin value are shown in the contact list.
IncomingReplyTo = 0x100,
- /// Cc: of incoming message of known sender
- IncomingCc = 0x200,
-
- /// additional To:'s of incoming message of known sender
- IncomingTo = 0x400,
-
/// a chat was manually created for this user, but no message yet sent
CreateChat = 0x800,
- /// message sent by us
- OutgoingBcc = 0x1000,
-
- /// message sent by us
- OutgoingCc = 0x2000,
-
/// message sent by us
OutgoingTo = 0x4000,
diff --git a/src/html.rs b/src/html.rs
index 5ba94ee6cc..4b4891e45d 100644
--- a/src/html.rs
+++ b/src/html.rs
@@ -522,7 +522,7 @@ test some special html-characters as < > and & but also " and
async fn test_html_forwarding_encrypted() {
let mut tcm = TestContextManager::new();
// Alice receives a non-delta html-message
- // (`ShowEmails=AcceptedContacts` lets Alice actually receive non-delta messages for known
+ // (`ShowEmails=All` lets Alice actually receive non-delta messages for known
// contacts, the contact is marked as known by creating a chat using `chat_with_contact()`)
let alice = &tcm.alice().await;
alice
diff --git a/src/imap.rs b/src/imap.rs
index 40d6a982ed..fc06a1e82c 100644
--- a/src/imap.rs
+++ b/src/imap.rs
@@ -1885,20 +1885,19 @@ async fn should_move_out_of_spam(
None => return Ok(false),
};
// No chat found.
- let (from_id, blocked_contact, _origin) =
- match from_field_to_contact_id(context, &from, true)
- .await
- .context("from_field_to_contact_id")?
- {
- Some(res) => res,
- None => {
- warn!(
- context,
- "Contact with From address {:?} cannot exist, not moving out of spam", from
- );
- return Ok(false);
- }
- };
+ let (from_id, blocked_contact) = match from_field_to_contact_id(context, &from, true)
+ .await
+ .context("from_field_to_contact_id")?
+ {
+ Some(res) => res,
+ None => {
+ warn!(
+ context,
+ "Contact with From address {:?} cannot exist, not moving out of spam", from
+ );
+ return Ok(false);
+ }
+ };
if blocked_contact {
// Contact is blocked, leave the message in spam.
return Ok(false);
@@ -2243,11 +2242,10 @@ pub(crate) async fn prefetch_should_download(
Some(f) => f,
None => return Ok(false),
};
- let (_from_id, blocked_contact, origin) =
- match from_field_to_contact_id(context, &from, true).await? {
- Some(res) => res,
- None => return Ok(false),
- };
+ let (_from_id, blocked_contact) = match from_field_to_contact_id(context, &from, true).await? {
+ Some(res) => res,
+ None => return Ok(false),
+ };
// prevent_rename=true as this might be a mailing list message and in this case it would be bad if we rename the contact.
// (prevent_rename is the last argument of from_field_to_contact_id())
@@ -2257,7 +2255,6 @@ pub(crate) async fn prefetch_should_download(
}
let is_chat_message = headers.get_header_value(HeaderDef::ChatVersion).is_some();
- let accepted_contact = origin.is_known();
let is_reply_to_chat_message = get_prefetch_parent_message(context, headers)
.await?
.map(|parent| match parent.is_dc_message {
@@ -2272,10 +2269,7 @@ pub(crate) async fn prefetch_should_download(
let show = is_autocrypt_setup_message
|| match show_emails {
ShowEmails::Off => is_chat_message || is_reply_to_chat_message,
- ShowEmails::AcceptedContacts => {
- is_chat_message || is_reply_to_chat_message || accepted_contact
- }
- ShowEmails::All => true,
+ ShowEmails::All | ShowEmails::All1 => true,
};
let should_download = (show && !blocked_contact) || maybe_ndn;
diff --git a/src/receive_imf.rs b/src/receive_imf.rs
index d5642db1e5..1abc9df291 100644
--- a/src/receive_imf.rs
+++ b/src/receive_imf.rs
@@ -322,7 +322,7 @@ pub(crate) async fn receive_imf_inner(
// For example, GitHub sends messages from `notifications@github.com`,
// but uses display name of the user whose action generated the notification
// as the display name.
- let (from_id, _from_id_blocked, incoming_origin) =
+ let (from_id, _from_id_blocked) =
match from_field_to_contact_id(context, &mime_parser.from, prevent_rename).await? {
Some(contact_id_res) => contact_id_res,
None => {
@@ -337,27 +337,16 @@ pub(crate) async fn receive_imf_inner(
let to_ids = add_or_lookup_contacts_by_address_list(
context,
&mime_parser.recipients,
- if !mime_parser.incoming {
- Origin::OutgoingTo
- } else if incoming_origin.is_known() {
- Origin::IncomingTo
- } else {
+ if mime_parser.incoming {
Origin::IncomingUnknownTo
- },
- )
- .await?;
- let past_ids = add_or_lookup_contacts_by_address_list(
- context,
- &mime_parser.past_members,
- if !mime_parser.incoming {
- Origin::OutgoingTo
- } else if incoming_origin.is_known() {
- Origin::IncomingTo
} else {
- Origin::IncomingUnknownTo
+ Origin::OutgoingTo
},
)
.await?;
+ let past_ids =
+ add_or_lookup_contacts_by_address_list(context, &mime_parser.past_members, Origin::Hidden)
+ .await?;
update_verified_keys(context, &mut mime_parser, from_id).await?;
@@ -655,7 +644,7 @@ pub(crate) async fn receive_imf_inner(
/// Converts "From" field to contact id.
///
-/// Also returns whether it is blocked or not and its origin.
+/// Also returns whether it is blocked or not.
///
/// * `prevent_rename`: if true, the display_name of this contact will not be changed. Useful for
/// mailing lists: In some mailing lists, many users write from the same address but with different
@@ -667,7 +656,7 @@ pub async fn from_field_to_contact_id(
context: &Context,
from: &SingleInfo,
prevent_rename: bool,
-) -> Result