Contact management in Omea is a complex topic, and we get a lot of questions and problem reports related to it. This page will describe our design goals for the contact subsystem, the specific implementation we have created, and some problems that still remain in it. We hope that this page will help people better understand our system.

This information should also be very helpful for developers of third-party plugins which need to make use of our contact features.

Our implementation is not set in stone. If you would like to point out problems with our current implementation or suggest ways to change it, you are welcome to do so in the jetbrains.omea.pro or jetbrains.omniamea.eap newsgroups on the news.jetbrains.com server.

Design Goals

Default Mapping of Names and Addresses to Contacts

The default way Omea maps names and addresses to contacts is different for the Myself contact and all other contacts. The Myself contact is the contact which describes the user of Omea. You can edit the Myself contact directly by locating it in the Contacts tab, or indirectly through the "User Information" page in Tools | Options | Omea.

In Omea Pro, the initial set of e-mail addresses of the Myself contact is filled by scanning the Sent Items folder in Outlook and looking at the "From" address of all messages in that folder. In Omea Reader, the set of Myself e-mail addresses is initially empty.

If the from/to/CC address of a message belongs to the list of e-mails of Myself contact, it is unconditionally linked to the Myself contact. If the address does not belong to the Myself contact, Omea links the message to an existing contact with the same name, and creates a new contact if one does not exist.

Ways to Modify the Default Mapping

There are two main cases when the default mapping used by Omea does not give correct results.

If you erroneously merge several contacts, you can undo the merge by using the "Extract Merged Contacts" feature (it can be accessed through an item in the contact context menu). Extracting the contacts will restore their exact state at the moment of the merge operation, and messages received after the merge will be automatically relinked to one of the extracted contacts based on the names and e-mail addresses used in the messages.

to be continued