In Roundcube we automatically collect email addresses. Some plugins exist that do this. I think it would be good to finally move the functionality into core and fix some related issues. As collecting senders and recipients is related let's consider this together.
Recipient email addresses (and names) collected (automatically) when sending an email. We'll make it optional, i.e. when disabled we'll not collect addresses nor display the addressbook.
I guess we'll have to have an option to use existing addressbook instead of the special one. So, it would be a single option: "Automatically add outgoing email addresses to": none/collected recipients/list of writable addressbooks for selection.
I'm not sure we should consider checking an address existence in all writable or all other addressbooks, but I would like to not add an option for this. Let's check only the above configured addressbook + all writable addressbooks. Maybe provide a plugin api hook to modify the list (e.g. Kolab may choose to check all user personal addressbooks).
Email addresses of senders collected when using "Always allow from..." link/button. This addressbook will be displayed/used only when "Allow remote resources from known senders" is set.
I guess we'll have to have an option to use existing addressbook instead of the special one. So, it would be a single option: "Store safe senders in": collected senders/list of writable addressbooks for selection.
So, when we check if the html message is safe we look for an address in the configured addressbook.
I'm not sure we should consider only the special addressbook, all writable addressbooks or all existing, but I would like to not add an option for this. Let's check the configuread addressbook + all writable addressbooks. And provide a plugin api hook to modify the list.
I'm not sure about the name, maybe it should be "Safe senders"? I'm also not sure about the wording for these new options above.
We have an option "On request for return receipt send receipt to my contacts...". I think both above addressbooks should be considered as "my contacts" in this context. I don't like to add another option. The list could be modified by a plugin if needed.
I think both above addressbooks should be used for autocompletion. I'm not sure it have to be configurable via 'autocomplete_addressbooks' option. Of course, these entries should have lower prio than entries from other addressbooks.
Both these addressbooks will use the same new database table. The table will contain columns: id, user_id, source_id, email, name.
I think we should allow only a single email address per record. For both sources we'll allow only entries deletion. No editing. No groups.
References: https://github.com/roundcube/roundcubemail/issues/5124 https://github.com/roundcube/roundcubemail/issues/5046 https://github.com/roundcube/roundcubemail/issues/4971