Chat contact vs. eMail contact - how does Delta tell the difference? (a bug report)

On my linux PC I have deleted ~/.config/DeltaChat (i.e. erased all traces of Delta). Next I started Delta and added my email address.
Next I added a chat with email address.2 that was used in the past as a Delta account (on Android). But it is not used for that anymore. All messages were deleted there and even the DeltaChat folder was removed.
When address.2 is added … Delta knows the user name and sends encrypted messages to this address (Thunderbird says so).
How is this possible? How does Delta know the user name? Why does it assume it is a ‘chat’ address?
address.2 should be treated as a regular email address and the user name should be unknown.

I repeated this on a different PC where Delta had never been installed: same result.
Apparently the user name and ‘chat status’ are stored online.
But where? And how do I remove it?
Deleting the account in Delta has no effect.

Tried it again. This time I also removed the DeltaChat folder for the first email address, i.e. the address I use to (re)create the chat account. And now, when I add a chat for email.2 to that Delta account, the user name is NOT shown and messages are NOT encrypted.

This shows that information about chat contacts is stored in the DeltaChat folder on your mail server and this information is not deleted when the chat account is removed. In my opinion the latter is a bug. I also think it is wrong to store that information on the mail server. It should be stored locally.

My experiences also show that once a contact is considered to be a Delta user ( i.e. messages are encrypted) this will not change when the contact stops using Delta. On the contact’s end the DeltaChat folder is also not removed when the account is terminated, but even when it is the user will keep receiving encrypted messages from this end. In my opinion that is also a bug.

Deltachat looks for who you wrote to in the past on you IMAP account to prefill the contacts list.

They are people that think the other way, in some eyes everything should on the email server.
Anyways that Info (nickname, public key and so on) is just in the emails so unless you delete them it’s there, deltachat does not store any additional info on the email server.

If you want you can tell DC in the settings to delete everything after time X or immediately from the mailserver (if you have multiple devices then you should not go for “immediately”, instead choose the longest possible time that is between you accessing the other device. otherwise not all messages will appear on both devices.).

How on earth should DC know that the contact stopped using DeltaChat? It’s simply not possible without the contact sending a normal message back.
After that the chat will be unencrypted again. That’s the opportunistic approach we currently have to encryption, encrypt whenever you can, but don’t send encrypted messages when the other side can not decrypt them.

Maybe we could make that stuff clearer to understand somehow? any suggestions?

2 Likes

It’s simply not possible without the contact sending a normal message back.
After that the chat will be unencrypted again.

Ah! That answers my initial question. That is how Delta tells the difference. Or rather: that’s how the contact tells the difference!

Maybe we could make that stuff clearer to understand somehow? any suggestions?

Perhaps you could explain that Delta does not (and cannot) ‘probe’ how a contact should be contacted but that it simply responds to the properties of the incoming messages. It will not encrypt a response to a normal message, but it will if the (last) incoming message is encrypted.

Thanks for Delta Chat and your quick answer. It is perfectly clear to me now.

3 Likes