BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention generally relates to electronic mail systems and, more particularly, the invention relates to a method, an article of manufacture and apparatus for providing a historical view of an electronic mail (e-mail) message.
2. Background of the Related Art
In today's electronic mail (e-mail) environment, many users either reply or forward the entire contents of a received e-mail message. This “reply with history” feature is used to communicate the flow of ideas to many people. However, the use of the reply with history feature often leads to e-mail containing very large chains of component messages.
The recipient of this e-mail usually requires additional time to search and determine the important portions or sections within the very large chains of component messages. When a particular user receives many of these e-mails with large chains of component messages, then the extra time spent searching and determining important sections of these e-mails results in lost time and productivity in a business environment.
Therefore, a need exists in the art for a method, an article of manufacture and apparatus for displaying electronic mail chains in an efficient manner.
SUMMARY OF THE INVENTIONThe present invention provides a method, an article of manufacture and apparatus for providing a historical view or map of an electronic mail (e-mail) message that includes a chain of component sections or messages. Specifically, the invention provides a method, as well as a concomitant apparatus and article of manufacture of providing a historical view of an electronic mail message having a plurality of sections comprising opening the electronic mail message, identifying the plurality of sections in the opened electronic mail message and displaying the historical view having a plurality of identifiers; where each identifier in the plurality of identifiers is provided for each section in the identified plurality of sections.
In another aspect of the invention, a method for viewing an electronic mail message having a plurality of sections comprises opening the electronic mail message; determining the plurality of sections in the opened electronic mail message; displaying a historical view having a plurality of identifiers, wherein each identifier in the plurality of identifiers is provided for each section in the determined plurality of sections; and activating at least one identifier in the plurality of identifiers to view the determined plurality of sections associated with the plurality of identifiers that are activated.
In still another aspect of the invention, a method for altering a historical view upon sending an electronic mail message comprises opening a historical view associated with an electronic mail message; selecting portions of the historical view that are to be contained in a new electronic mail message; and creating said new electronic mail message comprising a historical view containing the selected portions of the historical view. In one embodiment, the historical view comprises a plurality of identifiers, wherein each identifier in the plurality of identifiers is provided for each section in of an electronic mail message. The identifiers may comprise user identification and subject information.
In yet another aspect of the invention, a method of creating an electronic mail message comprises receiving a first electronic mail message comprising at least one historical section; creating a second electronic mail message; and creating a historical view for said second electronic mail message comprising identifiers representing said at least one historical section.
BRIEF DESCRIPTION OF THE DRAWINGSSo that the manner in which the above recited features, advantages and objects of the present invention are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
FIG. 1 depicts a simplified block diagram of an electronic mail system that benefits from the present invention;
FIG. 2 depicts a simplified block diagram of a user terminal (computer) within the electronic mail system of FIG. 1;
FIG. 3 depicts an e-mail message that is displayed on a terminal;
FIG. 4 depicts a map view for the e-mail message of FIG. 3;
FIG. 5 depicts a flow diagram for a mail program used for implementing the e-mail message processing of the present invention; and
FIG. 6 depicts a flow diagram for a map task used for implementing the map view.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTFIG. 1 depicts an electronic mail (e-mail)system100 that benefits by use of the present invention. Thesystem100 comprises ane-mail server102, anetwork104 and a plurality ofuser terminals1061,1062,...106n. Theuser terminals106 may include data processing systems, e-mail terminals, e-mail enabled network appliances and the like. The present invention is embodied as an executable software routine(s) that generally resides within theuser terminals106. Theuser terminals106 are connected to one another through thenetwork104 and also connected through thenetwork104 to thee-mail server102. The e-mailserver102 provides e-mail services to all of theuser terminals106 such that e-mail addressed from one terminal to another is routed through thenetwork104 to the e-mail server. The e-mailserver102 then properly addresses the e-mail to anappropriate user terminal106. Although the system is shown having a hub and spoke configuration, other forms of networks may also benefit from the invention.
In addition to conventional e-mail messages, thesystem100 routes control messages to theuser terminals106. Theuser terminal106 processes these control messages to determine an important section or sections within the e-mail message. The control messages are handled and routed by thesystem100 in a similar manner as conventional e-mail. For e-mail messages containing a large plurality or chain of component messages, theuser terminal106 provides a map view containing a list of the component messages with an indication of important sections or important component messages. This feature allows a recipient of an e-mail message that contains many component messages to navigate among the chain of messages and only read the important component messages.
FIG. 2 depicts auser terminal106, e.g., a general purpose computer.User terminal106 comprises acomputer200 and an input/output device ordevices202 such as a monitor, a keyboard, a mouse, a trackball and the like. Thecomputer200 comprises acentral processing unit204,support components206, input/output circuits208 and amemory210. Thememory210 may be a solid state memory, a disc drive, an optical memory, a removable memory device, or a combination of any of these memory devices. The input/output circuits208 provide a well-known interface from theCPU204 to the I/O devices202. Thesupport components206 are well known in the art and include such components as cache, power supplies, clock circuits, and the like. The combination of all of these components and elements forms a general purpose computer that, when executing a particular software package or routine, becomes a specific purpose computer. In this case, theCPU204 when executing the electronicmail processing software212 of the present invention operates as ane-mail processor218 as well as acontrol message processor216. The e-mailsoftware212 resides inmemory210. In addition, theelectronic mail messages220 and thecontrol messages222 are stored in amessage storage214 within thememory210. In addition, the I/O circuits208 generally contain a network interface card or modem that couples the computer to the network of FIG. 1 such that electronic mail messages can be routed to and from thecomputer200.
As will be described in detail below, one embodiment of the invention is implemented as a program product for use with a computer system such as, for example, thesystem100 shown in FIG.1. The program(s) of the program product defines functions of the preferred embodiment and can be contained on a variety of signal/bearing media, which include, but are not limited to, (i) information permanently stored on non-writable storage media, (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive); (ii) alterable information stored on writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive); or (iii) information conveyed to a computer by a communications medium, such as through a computer or telephone network, including wireless communications. Such signal-bearing media, when carrying computer-readable instructions that direct the functions of the present invention, represent embodiments of the present invention.
The e-mailprocessor218 and thecontrol message processor216 operate to receive e-mail messages and control messages, process the messages, and display a map view for each received e-mail message having a plurality or chain or component messages. The map view provides a list of all component messages within the e-mail message, where the important component messages or sections are flagged or highlighted. These important messages are highlighted in response to control messages associated with the e-mail message. If the control messages are sent separately from the associated e-mail message, thecontrol processor216 uses the control messages to determine the important sections or component messages within the e-mail message. Alternatively, if the control messages are embedded in the header of the e-mail message, thee-mail processor218 parses the control messages from the e-mail message. The control messages are then used to identify the important sections or component messages.
FIG. 3 depicts a mail view ormail window300 associated with ane-mail message310. FIG. 4 depicts a map view ormap window400 associated with theemail message310 of FIG.3. FIG. 5 depicts a flow diagram500 of a mail program used for implementing thee-mail message310. To best understand the invention, the reader should simultaneously refer to FIGS. 3-5.
Themail window300 is displayed on the terminal (specifically, on the I/O device202, which may include a display device) once thee-mail message310 is opened. Specifically, themail window300 depicts ane-mail message310, atitle bar320, asend button330, areply button340, aforward button350, amap button360 and avertical scroll bar370. Thee-mail message310 often includes a chain or plurality ofcomponent messages380 previously sent, forwarded or replied among different users. Eachcomponent message380 includes information relating to the sender (username, user identification and the like), recipient or reader, title and body. Thecomponent message380 generally) includes other information such as header information (not shown).
The recipient of thee-mail message310 may use thesend button330,reply button340 andforward button350 to respectively send, reply and forward mail to other users in a conventional manner. Use ofreply button340 andforward button350 may further add to the chain ofcomponent messages310 received by the next receiver. Thescroll bar370 is used to view different portions of thee-mail message310 or aparticular component message380.
The recipient can also use themap button360 that causes thee-mail processor218 to launch a map task routine. Upon executing this map task routine, thee-mail processor218 displays a map view ormap window400 embodied in the invention. FIG. 4 depicts amap view400 that comprises a plurality ofcomponent message identifiers410, where eachidentifier410 provides information associated with thecomponent message380, i.e., user identification and subject of the message. As such, themap view400 represents a list or outline of the contents orcomponent messages380 within thee-mail message310. Themap view400 can be displayed at the top of thee-mail message310, i.e., above thecomponent messages380, or can be displayed in a window separate from thee-mail message310.
Themap view400 provides the recipient with a simple history of thecomponent messages380 within thee-mail message310. Theidentifiers410 of thecomponent messages380 are generally ordered in some manner, i.e., by time or by user.Component messages380 or sections that are identified as important are highlighted or otherwise rated, i.e., using an importance indicator represented byrectangle412.
The recipient may utilize themap view400 to navigate the desired sections orcomponent messages380. For example, the recipient can view a specific section orcomponent message380, by simply clicking on its associatedidentifier410. This avoids the need to scroll through a potentially long chain of messages or sections within thee-mail message310.
The recipient may also utilize themap view400 to flag orreview component messages380 that are identified as important. For example, the sender of thee-mail message310 could have identified three messages in a chain of twenty messages as important, i.e., the messages cover an important topic or are written by a supervisor. In this case, the recipient may simply flag or access these three important messages by clicking on the associatedidentifiers410, instead of scrolling through theentire e-mail message310.
Additionally, the recipient may use themap view400 to selectively forward or reply to specific portions orcomponent messages380 to another user. Namely, the recipient can edit thee-mail message310 while creating a reply message or a forward message. The recipient may include particular component messages orsections380 or highlight important component messages orsections380, by selecting or marking check boxes (not shown) corresponding to eachidentifier410 and its associated message orsection380.
Themap view400 can be used to implement “send-to-specific” highlights, i.e., the highlighting ofdifferent sections410 to specific users. For example, if the recipient replies to or forwards thee-mail message310 to three people on a distribution list, the recipient can highlight a first section in red, a second section in blue and a third section in green. The recipient can determine which section to highlight with respect to a particular person or user, by simply checking a check box for each section on themap view400 and applying that section to the particular person or user selected. This allows each person to see who was highlighted for each section.
FIG. 5 depicts a method for implementing a mail program in accordance with one embodiment of the present invention. Themethod500 is entered atstep502 and proceeds to step504, where themethod500 retrieves an event. Such events may represent a particular command from the recipient of thee-mail message310. Themethod500 operates in an event driven manner, i.e., themethod500 retrieves events and performs different steps depending on a particular event retrieved.
Atstep506, themethod500 queries whether the event is to open a received message. If the event requests a message to be opened, themethod500 proceeds to step508, where the message window is displayed on the terminal. Control words associated with the mail message are generally not displayed. After displaying the message window atstep508, themethod500 proceeds to step504 to retrieve the next event. If the event is not to open a received message, then themethod500 proceeds to step510.
The step at510 is to query whether the event is to display the map view ormap window400 of thee-mail message310. Namely, the query is asking whether the map button has been activated. If the event is to display the map, then themethod500 proceeds to step512. Atstep512, themethod500 launches a map task. This map task is further described with respect to FIG.6. After launching the map task atstep512, themethod500 proceeds to step504 to retrieve the next event.
If the event is not to display themap view400, then themethod500 proceeds to the next query atstep514. This query determines whether a particular position of the mail message has been identified. Preferably, the recipient may identify the position to view in thee-mail message310 by selecting anidentifier410 in the map associated with a particular component message orsection380. The recipient may also specify the position in thee-mail message310 by either moving the vertical scroll bar and/or moving a position indicator from an input device. If the position of thee-mail message310 is specified, themethod500 proceeds to step516, where the display is adjusted to the specified position. After adjusting the display atstep516, themethod500 proceeds to step504 to retrieve the next event. If the current event is not to specify the position of thee-mail message310, then themethod500 proceeds to step518.
Atstep518, themethod500 queries whether the event is to close thee-mail message310. If thee-mail message310 is to be closed, then themethod500 proceeds to step520, where themethod500 sends a command to cancel the map task. After sending this command, themethod500 proceeds to step504 to retrieve the next event. If the e-mail message is to remain open, i.e., there is no event to close thee-mail message310, then themethod500 proceeds to step522, where normal mail program processing is performed, i.e., message forward, reply, edit and the like.
FIG. 6 depicts a detailed flow diagram ofstep508 wherein themethod500 implements amap task method600 embodied in the invention. Themethod600 is entered atstep602 and proceeds to step604, where the map view ormap window400 is opened. Thismap view400 can be provided at the top of themessage window300. Alternatively, themap view400 can be provided separately from themessage window300. Atstep606, themethod600 scans theopen e-mail message310 to find all the previous senders, i.e., users designated after “from” in the message. Themethod600 then obtains all control messages associated withimportant sections380 of the openede-mail message310 atstep608 before proceeding to step610.
Atstep610, themethod600 marks all component messages orentries380 that control messages indicate are important to the recipient. For example, the previous sender may have marked certain portions orcomponent messages380 of thee-mail message310 as important. Themethod600 then proceeds to step612, where the map view ormap window400 containing a list ofcomponent identifiers410 is displayed. The important identifiers are flagged or highlighted on the display of the map view.
After displaying themap view400 instep612, themethod600 retrieves events for the map task instep614. Atstep616, themethod600 queries whether the event is to select an entry from the list ofidentifiers410. Namely, step610 queries whether the recipient desires to view a particular component message orsection380. If the event is to select anidentifier410, then themethod600 proceeds to step618. At thisstep618, themethod600 sends the position information as an event to the mail program ormethod500. In turn, the display is adjusted instep516 to the position of the message associated with the selected sender. Themethod600 proceeds to step614 to retrieve the next event.
If the event does not involve selecting anidentifier410, then themethod600 proceeds to step620. Atstep620, themethod600 queries whether the event is having sections marked or selected as important. For example, the recipient may mark or select particular sections as important before forwarding or replying to thee-mail message310.
If the event is to mark or select a particular section orcomponent message380 as important, then themethod600 proceeds to retrieve sections from thee-mail message310 at step622. Themethod600 then proceeds to step624 where a user may identify sections of thee-mail message310 as important and to associate important sections of thee-mail message310 with corresponding users. Atstep626, themethod600 updates thee-mail message310 to be sent using control messages to indicate theimportant sections380 for each particular user. Themethod600 then proceeds to step614 to retrieve the next event.
If the process does not involve the selection of a particular message orsection380 as important, then themethod600 proceeds to step628 to query whether the event is a “restricted reply event” by the recipient. A restricted reply event occurs when a user selects a “restricted reply” that prepares a reply e-mail message that contains less than all the component messages. As such, the reply message can be tailored to the needs of a particular recipient. The restricted reply function can be used to created restricted forward messages as well. If the event is a restricted reply event, then themethod600 processes the selected portions of thee-mail message310 atstep630 and removes unselected portions of thee-mail message310 atstep632. Themethod600 then proceeds to step614 to retrieve the next event.
If the event is not a restricted reply event, then themethod600 proceeds to step634 to query whether the event is to cancel the map task. If the event requires canceling the map task, then themethod600 proceeds to close the map window atstep636 and exit themethod600 atstep638. After leavingmethod600 viastep512, themethod500 returns to step504. If the event does not involve cancellation of the map task, themethod600 proceeds to step614 to retrieve the next event.
Although various embodiments which incorporate the teachings of the present invention have been shown and described in detail herein, those skilled in the art can readily devise many other varied embodiments that still incorporate these teachings.