Patent Publication Number: US-8122364-B2

Title: Method and computer-readable medium for navigating between attachments to electronic mail messages

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This patent application is a continuation of U.S. patent application Ser. No. 10/993,950 titled “Method and Computer-Readable Medium for Navigating Between Attachments to Electronic Mail Messages” which was filed on Nov. 19, 2004 and which issued as U.S. Pat. No. 7,647,559 on Jan. 12, 2010 and which is a continuation-in-part of U.S. patent application Ser. No. 10/955,361 titled “Method and Computer-Readable Medium for Previewing and Performing Actions on Attachments to Electronic Mail Messages” which was filed on Sep. 30, 2004 and which issued as U.S. Pat. No. 7,243,298 on Jul. 10, 2007. These applications are expressly incorporated herein by reference. This patent application is also related to U.S. patent application Ser. No. 10/954,328 titled “Method, System, and Apparatus for Providing A Document Preview” which was filed on Sep. 30, 2004 and which is also expressly incorporated herein by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     Users of electronic mail (“e-mail”) client application programs are commonly frustrated by the number of steps that must be taken by a user to view the contents of a document that has been attached to an e-mail message. In many cases, a user only wants to see a preview of the attachment. A preview is a read-only rendering of a document that mimics what a user would have seen if the document was opened with an application program associated with the document. However, in the typical case, the user is required to select the attachment and then launch the application program associated with the attachment to view its contents. 
     When this traditional process for viewing the contents of an e-mail attachment is performed, the user is required to change application contexts between the e-mail client application and the application utilized to view the attachment. When the user has finished viewing the attachment, the user must again switch application contexts by closing the application program and returning to the e-mail client application. Switching application contexts in this manner to view a preview of an e-mail attachment can be both time consuming and frustrating for a user. 
     Because prior application programs have not provided a mechanism for allowing users to view the contents of an e-mail attachment without switching application contexts, these application programs have also not provided a convenient mechanism to navigate among the attachments to an e-mail message. In particular, these application programs have not provided a user interface mechanism through which a user can easily view the available attachments to an e-mail message and select one of the attachments for previewing. 
     It is with respect to these considerations and others that the various embodiments of the present invention have been made. 
     BRIEF SUMMARY OF THE INVENTION 
     In accordance with the embodiments of the present invention, the above and other problems are solved by a method and computer-readable medium for navigating between attachments to electronic mail messages. The various embodiments of the invention allow a user to quickly identify and select an attachment to an electronic mail message from any number of attachments. The embodiments of the invention also allow a user to quickly preview the contents of e-mail attachments without switching application contexts. 
     According to one embodiment of the invention, a method is provided for navigating between attachments to e-mail messages. According to the method, a list of e-mail messages is displayed that includes header information associated with each of the messages. For instance, the list may include header information that identifies a sender of each e-mail message, a subject for each e-mail message, and a received time for each e-mail message. Other information may also be displayed. When one of the messages in the list is selected, a determination is made as to whether the selected message has attachments. If the selected message has attachments, an identifier is displayed adjacent to the header information for each attachment. The identifier indicates that the attachment is associated with the selected message and may provide other information such as the type and size of the attachment. The identifiers are displayed in a manner to indicate clearly to a user that the attachments are associated with the selected e-mail message. 
     According to other embodiments of the invention, one of the identifiers corresponding to an attachment may be selected. In response to such a selection, the selected e-mail message is deselected and a preview is generated and displayed for the attachment corresponding to the selected identifier. If another identifier corresponding to another attachment is selected, a preview is then generated and displayed for that attachment. If another e-mail messages in the list is selected, identifiers for the first selected e-mail message are removed and any identifiers for the newly selected e-mail message are displayed. 
     According to another embodiment of the invention, a selection may be received of one of the e-mail messages in the list. A request may also be received to open the selected message for viewing. This may occur, for instance, through a double mouse click of an e-mail message in the list. In response to such a request, the selected e-mail message is opened for viewing and the contents of the selected mail message are displayed. A user interface is also displayed for navigating between attachments to the displayed e-mail message. The user interface includes an identifier for each of the attachments to the selected message and may be displayed adjacent to the display of the contents of the selected mail message. 
     According to other embodiments, a selection may be received of one of the identifiers within the user interface for navigating between attachments. In response to such a selection, a preview is generated for the attachment corresponding to the selected identifier and the preview is displayed. The preview may be displayed adjacent to the display of the contents of the selected mail message. In this manner, a user may easily view both the contents of the selected e-mail message and the preview of the selected attachment. 
     The invention may be implemented as a computer process, a computing system, or as an article of manufacture such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process. 
     These and various other features, as well as advantages, which characterize the present invention, will be apparent from a reading of the following detailed description and a review of the associated drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         FIG. 1  is a computer system architecture diagram illustrating a computer system utilized in and provided by the various embodiments of the invention; 
         FIGS. 2A-2C  and  3  are screen display diagrams illustrating several screen displays provided by the various embodiments of the invention; and 
         FIGS. 4-6  are flow diagrams illustrating various processes provided by the several embodiments of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring now to the drawings, in which like numerals represent like elements, various aspects of the present invention will be described. In particular,  FIG. 1  and the corresponding discussion are intended to provide a brief, general description of a suitable computing environment in which embodiments of the invention may be implemented. While the invention will be described in the general context of program modules that execute in conjunction with program modules that run on an operating system on a personal computer, those skilled in the art will recognize that the invention may also be implemented in combination with other types of computer systems and program modules. 
     Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. 
     Referring now to  FIG. 1 , an illustrative computer architecture for a computer  2  utilized in the various embodiments of the invention will be described. The computer architecture shown in  FIG. 1  illustrates a conventional desktop or laptop computer, including a central processing unit  5  (“CPU”), a system memory  7 , including a random access memory  9  (“RAM”) and a read-only memory (“ROM”)  11 , and a system bus  12  that couples the memory to the CPU  5 . A basic input/output system containing the basic routines that help to transfer information between elements within the computer, such as during startup, is stored in the ROM  11 . The computer  2  further includes a mass storage device  14  for storing an operating system  16 , application programs, and other program modules, which will be described in greater detail below. 
     The mass storage device  14  is connected to the CPU  5  through a mass storage controller (not shown) connected to the bus  12 . The mass storage device  14  and its associated computer-readable media provide non-volatile storage for the computer  2 . Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the computer  2 . 
     By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer  2 . 
     According to various embodiments of the invention, the computer  2  may operate in a networked environment using logical connections to remote computers through a network  18 , such as the Internet. The computer  2  may connect to the network  18  through a network interface unit  20  connected to the bus  12 . It should be appreciated that the network interface unit  20  may also be utilized to connect to other types of networks and remote computer systems. The computer  2  may also include an input/output controller  22  for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown in  FIG. 1 ). Similarly, an input/output controller  22  may provide output to a display screen, a printer, or other type of output device. 
     As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device  14  and RAM  9  of the computer  2 , including an operating system  16  suitable for controlling the operation of a networked personal computer, such as the WINDOWS XP operating system from MICROSOFT CORPORATION of Redmond, Wash. The mass storage device  14  and RAM  9  may also store one or more program modules. In particular, the mass storage device  14  and RAM  9  may store an e-mail client application  24 . The e-mail client application  24  is operative to send and receive e-mail messages  26  over the network  18 . The e-mail messages sent or received may also include attachments  28 . The attachments may comprises any file type, and commonly include pictures, word processing documents, compressed files, and other types of files. 
     As will be described in greater detail herein, the e-mail client application  24  is operative to provide a user interface for navigating between e-mail message attachments. The embodiments of the invention are also operative to display a preview of a document attached to an e-mail message without requiring a user to switch to another application program. Details regarding the user interface and a process for generating the interface are provided below with respect to  FIGS. 2A-2C ,  4 , and  6 . The e-mail client application  24  is also operative to identify one or more actions that may be performed on a document attached to an e-mail message. User interface objects for performing the actions may be displayed to a user as a part of the preview user interface. 
     One of the actions provided by the e-mail client application  24  comprises an action for quickly generating an e-mail message in reply to an e-mail message having an attachment. The reply e-mail message includes a changed version of the original attachment. In order to provide this functionality, the e-mail client application  24  may launch an application program  30  capable of editing the original attachment. The user may then be permitted to edit the attachment and quickly transmit the changed attachment as a reply to the original e-mail message. Additional details regarding an action for replying to an e-mail message with a changed attachment are provided below with respect to  FIGS. 3 and 5 . 
     According to embodiments of the invention, the e-mail client application  24  comprises the OUTLOOK personal information manager application program from MICROSOFT CORPORATION. It should be appreciated, however, that the invention may be utilized with other application programs capable of sending and receiving e-mail messages provided by other manufacturers. According to embodiments of the invention, the application  30  comprises a word processing application program, such as the WORD word processing application program from MICROSOFT CORPORATION. It should be appreciated, however, that other types of application programs and other word processing application programs from other manufacturers may be utilized to embody the various aspects of the present invention. 
     In order to generate the preview of an attachment to an e-mail message, the e-mail client application  24  utilizes the services of a preview handler  32 . The preview handler  32  is responsible for locating and executing a previewer capable of generating a visual preview for the attachment. The previewer renders the preview into a window provided by the e-mail client application  24 . In this manner, the preview appears to have been rendered by the e-mail client application program  24  even though it was rendered by a separate previewer. The operation of an illustrative preview handler is described in U.S. patent application Ser. No. 10/954,328 filed on Sep. 30, 2004 and entitled “Method, System, and Apparatus for Providing A Document Preview” which is expressly incorporated herein by reference. 
     Referring now to  FIG. 2A , an illustrative user interface provided by the various embodiments of the invention will be described. In particular,  FIG. 2A  shows a screen display  40  generated by the e-mail client application  24 . The screen display  40  comprises a user interface window having a list pane  42  in which one or more e-mail messages  44 A- 44 D are identified. As shown in  FIG. 2 , the e-mail messages  44 A- 44 D are identified by displaying a portion of the e-mail header information including the sender&#39;s name, the message subject, and the time the message was sent. It should be appreciated that other information may be displayed to identify the e-mail messages  44 A- 44 D in the list pane  42 . 
     As shown in  FIG. 2A , the e-mail message  44 D includes three attached documents  46 A- 46 D. The attachments  46 A- 46 C are indicated as being attachments to the e-mail message  44 D by a line extending from the e-mail message  44 D to each of the attachments. Moreover, the attachments  46 A- 46 C are identified by an icon corresponding to the document type, by the name of the each attachment, and by an indication of the size of each attachment. The indicator for the attachments  46 A- 46 C are also offset from the indicator for the e-mail message  44 D to indicate the child/parent relationship. Other types of information may also be displayed for each attachment. A paperclip icon is also displayed in conjunction with the e-mail message  44 D to indicate that attachments are present but any type of icon or visual indicator may be utilized. 
     It should be appreciated that, according to one embodiment of the invention, the indicators for each of the attachments  46 A- 46 C are only displayed in response to the selection of the message  44 D. When another message is selected, the indicators for the attachments  46 A- 46 C are removed. If the newly selected message has attachments, then the identifiers for those attachments are displayed. If the newly selected message does not have attachments then no identifiers are displayed. 
     According to other aspects of the invention, a user may select one of the attachments  46 A- 46 C utilizing an appropriate user input device. For instance, a single mouse click may be made upon the attachment  46 A to select the attachment. In response to such a selection, a preview  50  will be generated of the attachment and displayed in the reading pane  48 . The reading pane  48  is displayed adjacent to the list pane  42 . The reading pane  48  may also include other information regarding the attachment  46 A such as the name of the attachment and the size of the attachment. Information particular to a type of attachment may also be displayed such as the number of pixels in an attached picture. If the user selects another of the attachments  46 A- 46 C, a preview for the selected attachment will be generated and displayed in the reading pane  48 . 
     According to aspects of the invention, the e-mail client application  24  may also be operative to identify one or more actions that can be performed upon an attachment and to display the available actions in conjunction with the preview  50 . For instance, as shown in  FIG. 2A , a number of actions  52 A- 52 D have been identified for the attachment  46 A. In particular, the action  52 A allows the attachment to be saved to the mass storage device  14 , the action  52 B causes a slide show to be generated and displayed for the attachments  46 A- 46 C, the action  52 C causes the previewed attachment  46 A to be printed, and the action  52 D causes the attachment  52 D to be deleted. 
     It should be appreciated that many different types of actions may be identified for each file type. For instance, a slide show action may be made available for pictures and presentation documents, actions may be made available for accepting or declining attached meeting requests, attached contact files may be added to a contacts list in a personal information manager, playback controls may be displayed for audio files, and actions may be provided for displaying attached facsimile documents. Other actions may also be displayed that are appropriate for all file types, such as opening, saving, deleting, and printing. In one embodiment, only the actions specific to a particular file type are displayed adjacent to the preview  50 . Other actions common to all file types may be displayed in a tool bar  54 . When multiple attachments are selected, the header and the preview shown may be for the first attachment. Only the actions that are available for all of the selected attachments will be displayed in proximity to the preview  50 . 
     According to other aspects of the invention, a user may provide a request to open one of the e-mail messages  44 A- 44 D for viewing. For instance, a user may utilize a mouse input device to “double click” one of the messages  44 A- 44 D. In response to such a request, a screen display  70  such as that shown in  FIG. 2B  may be displayed. As shown in  FIG. 2B , the screen display  70  includes a body area  72  where the contents of the selected e-mail message are displayed. The screen display  70  also includes a user interface  75  for navigating between the attachments to the selected e-mail message. 
     The user interface  75  includes an identifier  76  for the selected e-mail message and one or more identifiers  78 A- 78 C for each of the attachments to the selected e-mail message. In an embodiment, the identifiers  78 A- 78 C include an icon that identifies the type of the attachment and the name of the attachment. Other types of information may also be provided. As shown in  FIG. 2B , the identifiers  76  and  78 A- 78 C are displayed in a manner to clearly indicate that the attachments are associated with the selected e-mail message. In particular, a line is displayed to indicate the hierarchical relationship between the selected message and its attachments. Other types of user interfaces may be provided to illustrate this relationship to the user. 
     According to one embodiment of the invention, the indicators  76  and  78 A- 78 C may be selected by a user. If the indicator  76  is selected, the contents of the e-mail message are displayed in the body area  72 . If one of the indicators  78 A- 78 C are selected, a preview is generated for the attachment corresponding to the selected indicator and the preview is displayed in the body area  72 . According to another embodiment, the contents of the selected e-mail message may be continually displayed and the preview for a selected attachment may be simultaneously displayed in a separate preview areas  74 . In this manner, both the body of the selected e-mail message and a preview of a selected attachment may be viewed simultaneously. 
     Referring now to  FIG. 2C , additional aspects of the various embodiments of the invention will be described. As shown in  FIG. 2C , the messages identified in the list pane  42  may be displayed in a conversation view. The conversation view sorts the messages according to their sent and received order and indents each of the messages. In the conversation view, the indicators  46 D and  46 E for attachments to a particular e-mail message  44 E may be displayed in the manner described above. In particular, the identifiers  46 D and  46 E may include an icon indicating the type of attachment and the name of the attachment. Moreover, the hierarchy between one of the messages  44 E in the conversation view and its attachments may be indicated through the display of a line between the message  44 E and the identifiers  46 D and  46 E without interfering with the conversation view. 
     Referring now to  FIG. 3 , another illustrative user interface provided by the various embodiments of the invention will be described. In particular,  FIG. 3  shows a screen display  60  generated by a word processing application utilized in conjunction with the various embodiments of the present invention. As described above, according to embodiments of the invention, an action may be provided for certain types of attached documents that allows a user to quickly edit the attachment and transmit a reply e-mail that includes the changed document as an attachment. In response to the selection of such an action, the word processing application program is launched for editing with the attached document. The screen display  60  shown in  FIG. 3  illustrates the screen display shown by the word processing application once it has been launched in this manner. 
     As shown in  FIG. 3 , the word processing application program provides the conventional tools for editing the document  28 . “Reply with changes” button  62  is also displayed in conjunction with the user interface for editing the document  28 . Selection of the button  62  causes a reply message to be generated with the e-mail fields populated and the document  28  attached. The user may then edit the contents of the reply message and send the message. By integrating the e-mail client application  24  and the word processing application in this manner, a user is freed from the tedious process for editing documents attached to e-mail messages required by previous e-mail client applications. 
     It should be appreciated that although the embodiment of the invention described herein is presented in the context of a word processing application program, other types of applications program may also be used similarly. For instance, if an e-mail message includes a presentation document as an attachment, a presentation program may be launched in response to a request to transmit a reply message including a modified attachment. Any other type of document may be edited and transmitted in a similar manner. 
     Referring now to  FIG. 4 , an illustrative routine  400  will be described illustrating a process performed by the e-mail client application  24  for previewing and performing actions on attachments to e-mail messages. It should be appreciated that although the embodiments of the invention described herein are presented in the context of an e-mail client application program  24 , the invention may be utilized in other types of application programs. 
     When reading the discussion of the routines presented herein, it should be appreciated that the logical operations of various embodiments of the present invention are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations illustrated in  FIGS. 4-5 , and making up the embodiments of the present invention described herein are referred to variously as operations, structural devices, acts or modules. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims set forth herein. 
     The routine  400  begins at operation  402 , where the e-mail client application  24  displays e-mail messages in the list pane  42 . The routine  400  then continues to operation  404 , where the documents attached to the e-mail messages shown in the list pane are also displayed. The attachments may be displayed in the manner described above with respect to  FIG. 2 . From operation  404 , the routine  400  continues to operation  406 . 
     At operation  406 , the e-mail client application  24  receives the user selection of an attachment to an e-mail message. In response to the selection, the e-mail client application  24  instructs the preview handler  32  to identify a previewer for the attachment and to generate a preview of the attachment. The generated preview is then displayed by the e-mail client application  24  in the reading pane  48  at operation  408 . From operation  408 , the routine  400  continues to operation  410 . 
     At operation  410 , the e-mail client application  24  identifies the actions that may be performed on the attachment. User interface objects, such as buttons, are then displayed for the identified actions adjacent to the preview  50 . This occurs at operation  412 . From operation  412 , the routine  400  continues to operation  414 , where a request is received from the user to perform one of the displayed actions. The request may be made, for instance, through a selection of one of the displayed user interface objects. The routine  400  then continues to operation  416 , where the requested operation is performed. From operation  416 , the routine  400  continues to operation  418 , where it ends. 
     Turning now to  FIG. 5 , an illustrative routine  500  will be described for performing an action for replying to an e-mail message with changes to an attached document. The routine  500  begins at operation  502 , where an e-mail message having an attachment is received by the e-mail client application  24 . From operation  502 , the routine  500  continues to operation  504 , where a request is receive to reply to the original e-mail with changes to the attached document. This request may be made, for instance, through a user selection of one of the actions associated with a preview. From operation  504 , the routine  500  continues to operation  506 . 
     At operation  506 , the e-mail client application  24  launches an application program associated with the attachment. For instance, if the attachment comprises a word processing document, the e-mail client application  24  may launch a word processing application for editing the document. The application program may also be launched in a state specifically designated for reviewing and modifying documents. Such a state is commonly referred to as a “review” mode and provides functionality for making document modifications in a manner that allows the modifications to be easily identified and read by another user. 
     As described briefly above, the application program may also be launched in a manner to cause the “reply with changes” button  62  to be displayed in conjunction with the editing screen. This occurs at operation  506  and allows a user to easily and quickly transmit the changed document as a reply to the original e-mail message. From operation  508 , the routine  500  continues to operation  508 , where changes to the attached document are received from the user. The routine  500  then continues to operation  510 , where a request is received from the user to transmit the reply e-mail message including the changed document through the selection of the button  62 . 
     In response to receiving the request to transmit the reply e-mail including the changed document, the routine  500  continues to operation  512  where a reply message is created with the changed document attached. The user can then add comments. If the user indicates the message should be sent, the routine continues to operation  516 , where the e-mail client application transmits the reply e-mail with the changed document attached. The application program is closed and the user is returned to the display provided by the e-mail client application  24 . The user may then preview other documents and interact with the e-mail client application  24  in the manner described herein. From operation  514 , the routine  500  continues to operation  518 , where it ends. 
     Referring now to  FIG. 6 , an illustrative routine  600  will be described for navigating between attachments to an e-mail message in a view which shows the contents of the e-mail message, such as that described above with respect to  FIG. 2B . The routine  600  begins a operation  602 , where a request is received from a user to open the contents of an e-mail message for viewing. In particular, such a request may comprises a double mouse click on an e-mail message or an equivalent keystroke. From operation  602 , the routine  600  continues to operation  604 . 
     At operation  604 , a screen display similar to that shown in  FIG. 2B  may be displayed for the selected message. As described above, the screen display includes the display of the contents of the selected e-mail message. From operation  604 , the routine  600  continues to operation  606 , where the user interface  75  for navigating among attachments to the opened e-mail message is displayed. If a user selects an identifier for an attachment within the user interface  75  at operation  608 , a preview is generated for the corresponding attachment. The preview is then displayed at operation  610 . It should be appreciated that any of the attachments to an e-mail message may be previewed in this manner. Once the user has completed viewing the contents of the e-mail message and previews of the attachments, the user may close the screen display to return to the screen display shown in  FIG. 2A . Accordingly, the routine  600  ends at operation  612 . 
     Based on the foregoing, it should be appreciated that the various embodiments of the invention include a method, system, apparatus, and computer-readable medium for navigating and previewing attachments to electronic mail messages. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.