A computer program product for use at a computer system, the computer program product for implementing a method for updating message conversation data, the computer program product comprising one or more computer-readable storage device having stored thereon computer-executable instructions that, when executed by a processor, cause the computer system to perform the method, the method comprising:
- an act of receiving an electronic mail message that is to be stored in an electronic mail user's mailbox for subsequent retrieval by the user;
- an act of linking the received electronic mail message to a corresponding electronic mail conversation item that represents an electronic mail conversation corresponding to a one or more of a plurality of messages, the electronic mail conversation item including a plurality of conversation attribute values that represent the attributes of the electronic mail conversation including an identification of each message associated with the conversation and corresponding one or more participants of each message and a recipient delta field identifying a list of entities that were added or removed from each message identified as being associated with the conversation;
- an act of persisting the link between the received electronic mail message and the corresponding electronic mail conversation item;
- an act of changing one or more conversation attribute values to appropriately reflect the attributes of the electronic mail conversation in response to receiving any electronic mail message corresponding to the electronic mail conversation, including the received electronic mail message, and such that the conversation attribute values are responsively updated to at least ensure that every participant in the electronic mail conversation is reflected in the electronic mail conversation item and that any entity added or moved from the electronic mail message is reflected in the recipient delta field;
- an act of maintaining a conversations folder in a user's mailbox that includes a plurality of conversation items, wherein each electronic mail conversation item is editable by interfacing with the conversations folder in the user's mailbox, regardless of which folder or folders the electronic mail messages corresponding to the conversation item are stored in, the editing comprising performing a user-initiated operation on an electronic mail conversation item, wherein any user-initiated operations that have been performed are performed automatically on subsequently received electronic mail messages that are determined to be part of the conversation;
- an act of receiving an indication from the user that the received electronic mail message and any electronic mail messages determined to be part of the conversation are to be ignored;
- an act of scanning each of the folders in the user's mailbox for electronic mail messages that are related by subject to the received electronic mail message, wherein scanning includes scanning for both previously sent messages in a sent items folder and scanning for previously received messages in a least one other mailbox folder;
- an act of moving the received electronic mail message, any previously sent or received email messages and any subsequently sent or received electronic mail messages identified by the scan as part of the conversation to an ignored conversations folder;
- an act of receiving a request to present the electronic mail conversation item to the electronic mail user at a user interface;
- an act if dynamically generating a hypertext markup language (HTML) body for at least one of the email messages in the conversation item in response to the received request to present the conversation item, the HTML body being generated using at least some of the plurality of conversation attribute values included in the electronic mail conversation item;
- and
- an act of displaying the electronic mail conversation including the conversation's corresponding messages, in a single application window, the displayed conversation including:
- a topic header, at least a portion of each message contributed to the conversation including an indication of who sent the message, each message including a URL link to any additional message body text, wherein any additional message text beyond a threshold amount is discarded, a participant change indication proximally placed next to each message where a participant was added or removed from the conversation including an identification of the participant who was added or removed, a number of messages indicator indicating the number of messages in the conversation, a timespan indicator indicating how long the conversation has existed, an active participants indicator indicating the participants that have contributed to the conversation and a most active participant indicator indicating the conversation participant that has contributed the most number of messages to the conversation.