US 20050091329 A1
An electronic mail computer program running as a client application permits a user to determine in a single user interface application window, for example an “in-box,” the on-line status of those persons who have sent e-mail messages to the user. Once such a sender has been identified as being currently on-line and available for real-time messaging, the user may use the same application window to initiate real-time messaging with the sender. The client application cooperates with a messaging system server that manages and provides the on-line state of senders of electronic mail to the user's client computer, including for example the following states: on-line, off-line, do-not-disturb, and accepting real-time messaging.
1. A computer program product for operating an electronic mail application on a first computer, comprising:
a computer-readable storage medium including computer-readable program code for operation on the first computer and embodied in the storage medium, wherein the operation of the computer-readable program code comprises:
accepting an incoming electronic mail message sent by a sender using a second computer;
providing a user interface, wherein the user interface comprises a message display including information regarding the incoming electronic mail message; and
displaying a status of the sender in the display.
2. The computer program product of
3. The computer program product of
4. The computer program product of
the incoming electronic mail message is one of a plurality of electronic mail messages listed in the display; and
displaying the status comprises providing a status indicator in the display for each of the plurality of electronic mail messages.
5. The computer program product of
6. The computer program product of
7. The computer program product of
8. The computer program product of
determining the electronic mail address of the sender; and
comparing the electronic mail address of the sender with a list of messaging system contacts to determine the sender state of the status indicator.
9. The computer program product of
10. The computer program product of
11. A messaging system for indicating a status of a sender of an electronic mail message, comprising:
a client computer; and
an electronic mail application, running on the client computer, for receiving the electronic mail message and comprising a user interface to display information regarding the electronic mail message, wherein the user interface indicates the status of the sender.
12. The messaging system of
13. The messaging system of
14. The messaging system of
15. The messaging system of
16. The messaging system of
the electronic mail application determines the electronic mail address of the sender;
the messaging system server maintains a list of messaging system contacts; and
the electronic mail application compares the electronic mail address of the sender with at least a portion of the list of messaging system contacts to determine the status of the sender.
17. The messaging system of
18. The messaging system of
19. The messaging system of
20. The messaging system of
21. A method of using an electronic mail application running on a client computer, comprising:
providing an incoming messages window;
receiving an electronic mail message from a sender;
displaying an indication of receipt of the electronic mail message in the incoming messages window;
determining a state of the sender; and
displaying a status indicator, corresponding to the state of the sender, in the incoming messages window.
22. The method of using the electronic mail application of
23. The method of using the electronic mail application of
24. The method of using the electronic mail application of
25. The method of using the electronic mail application of
26. The method of using the electronic mail application of
updating the first contacts file by receiving repeated transmissions from the messaging system server.
27. The method of using the electronic mail application of
28. The method of using the electronic mail application of
The present invention relates to electronic mail application systems in general and more particularly to an electronic mail (“e-mail”) application for indicating the status of the sender of an electronic mail message in a single, integrated incoming message status window or in-box.
E-mail software client applications are in widespread use for sending and receiving e-mail messages, in particular, on the Internet. One limitation, however, of such e-mail applications is that they are not designed for facilitating instantaneous two-way communication or real-time messaging with another computer connected, for example, to the Internet. Instead, prior e-mail applications only provide a list of new messages received in an in-box for review by the client application. There is no mechanism built into prior e-mail applications for determining or tracking the on-line status of any of the senders of the new messages or the real-time availability of the senders for entering real-time messaging or communications with the user. Further, prior e-mail applications do not include a means for determining the membership of the senders of new messages in any instant messaging systems or related standards, whether proprietary or non-proprietary. The typical means that a user of an e-mail client application has for communicating with the sender involves a significant lag time due to the need for a reply e-mail message to be sent using standard e-mail protocols such as those used on the Internet, and the delay that arises from waiting for the recipient of the reply e-mail to check the recipient's e-mail server using the recipient's e-mail application.
Instant messaging systems exist for providing real-time communication between users operating different computers connected over, for example, the Internet. These instant messaging systems provide real-time communication not possible with dedicated e-mail applications. Examples of currently-available instant messaging systems include America On-Line's instant messaging system and the NETCLUBS system offered by Valent Software. Although instant messaging systems permit real-time communication, existing systems must be operated by the user from a dedicated application or dedicated window within another application, which must be separately launched or accessed in order to determine those other users that are members of the instant messaging system and/or that are available for real-time interactive communication such as by so-called “chat” communication or otherwise. Also, other users may be members of different instant messaging systems, in which case the user will need to check two or more instant messaging applications to determine whether other users are available for chatting. Because a user will typically only check a limited number of status windows such as, for example, the in-box of the user's preferred e-mail application, the user may miss or not be aware that other users are available for real-time messaging.
It would be desirable for a user to be able to quickly and conveniently determine in a single status window, such as an in-box, the availability of all other users which have electronically contacted the user, for example, by sending an e-mail, and that are currently available for real-time messaging. Under existing approaches, a user must learn two or more different applications with varying user interfaces in order to track the on-line messaging status of other users. Another limitation of existing approaches is that a user often may not be able to recognize that a particular sender of an e-mail message is also a member of an instant messaging system to which the user also belongs. This can occur, for example, because the sender of an e-mail message may use a different name or alias for interacting on an instant messaging system. Instead of using multiple applications to manage communications with other users, it would be desirable to use a single application by which a user could quickly and conveniently reply to a sender of an e-mail using standard e-mail protocols or entering into a real-time messaging session with the sender.
Accordingly, there is a need for an electronic mail application that integrates in a single interface window the updating of status information regarding senders of e-mail messages received by the user and that displays the status for each sender of an incoming message based on the current availability of the sender for real-time messaging.
The present invention generally provides an e-mail software application and method of operation therefor that permits an end user of the application to determine in a single user interface application window, for example an “in-box”, the on-line status of those persons (such persons are generally referred to herein as “senders”) who have sent e-mail messages (also referred to herein as simply “e-mails”) to the user. Once such a sender has been identified as being currently on-line and available for real-time messaging, the user may use the same application window to initiate real-time messaging with the sender.
The e-mail application is a computer program that runs on a client computer that is part of a messaging system including a messaging system server, which manages status information for senders that are part of the messaging system. The status of a sender generally refers to the state or relationship (for example, whether currently on-line or off-line) of the sender relative to the sender's computer. The client computer is in regular, periodic communication with the messaging system server. Further, the computers used by senders to send e-mail messages to the client computer are also typically in regular, periodic communication with the messaging system server. The foregoing communications enable the messaging system server to determine and provide appropriate status information for each sender of an e-mail to the e-mail application.
The above features and other inventive features of the present invention are described below with reference to specific embodiments as illustrated in the figures listed above. More specifically, as shown in
A messaging system contacts file 114 is stored on messaging system server 102 and contains a list of the members of the real-time messaging system managed by server 102, including an alias selected by each member, as discussed further below. Visible contacts file 110 and hidden contacts file 112 are stored on client computer 104. Hidden contacts file 112 contains a list of messaging system members received from server 102 including the status information for each listed member as provided by server 102. Hidden contacts file 112 corresponds to that portion of the members of messaging system 100 that have given the user of client computer 104 permission to receive their on-line status information, as discussed further below. Accordingly, hidden contacts file 112 will in general include only a portion of all such members. The contents of hidden contacts file 112 are not visible to the client user during the operation of e-mail application 105.
Visible contacts file 110 contains a list of aliases for those members of messaging system 100 that have been selected by the client user as being approved contacts eligible to receive status information about the client user. The alias is that name by which each such member has selected to be known by other members. Visible contacts file 110 does not contain personally-identifiable information associated with each member, for example, as contained in hidden contacts file 112. Instead, only a list of aliases is actually visible to the client user. This maintains the privacy of each member's on-line status and other personal information such as, for example, a member's e-mail address.
Approved contacts file 116 is stored on sender computer 106 and contains a list of aliases for members for which the sender using sender computer 106 has given permission to obtain on-line status information about the sender. Approved contacts file 116 is periodically sent to server 102 and is used along with similar alias information sent by other senders for determining the list of members to be sent to client computer 104 and stored as hidden contacts file 112. Approved contacts file 116 is visible to the sender, but other information regarding such members is not accessible by the sender.
Servers 102 and 108 and computers 104 and 106 are interconnected by standard communications protocols, for example by conventional Internet-based protocols. More specifically, arrows 118 correspond to communication between client computer 104 and server 102 for requesting and providing member information for hidden contacts file 112. Arrows 120 correspond to communication between sender computer 106 and server 102 regarding providing updates of approved contacts file 116 and information regarding the current on-line status of the sender.
Arrows 124 and arrows 126 correspond to communication for the sending of a standard e-mail to the sender through server 108. Arrows 122 correspond to real-time messaging directly between client computer 104 and sender computer 106 as initiated according to the present invention.
Files similar to visible contacts file 110 and the approved contacts files 116 are stored on client computers (not shown) for all other members of the messaging system and are regularly communicated to messaging system server 102, which uses this information to determine what on-line status information is approved for sending to client computer 104 as part of a regular update to hidden contacts file 112. This communication is driven by the client application software running on each other member's computer. Such software is made compatible with the real-time messaging system standards for the specific messaging system running on server 102.
Messaging system 100 permits the client user to respond to an e-mail from the sender in two basic scenarios: the sending of a standard reply e-mail or the initiation of real-time messaging. In the first scenario, a sender has previously used sender computer 106 to send an e-mail message to the user of client computer 104, for example, using standard Internet e-mail protocols. The client user sends a standard e-mail reply, which is communicated to electronic mail server 108. The sender must generally take some action to specifically check for this reply using the sender's email client application, which is resident on sender computer 106.
In the second scenario, and according to the present invention, the client user may directly initiate real-time messaging with the sender, if the sender is currently on-line. Such real-time messaging avoids the delay or lag time inherent in the standard e-mail reply scenario described above. “Real-time messaging” as used herein generally includes all types of substantially real-time two-way communication between the client computer and the sender computer. However, it is possible that such real-time messaging may exhibit sporadic delays due to communication or heavy loads on a server or client computer in the communications path. It should be noted that real-time messaging involves direct communication between client computer 104 and sender computer 106, such as for example peer-to-peer communication. This is in contrast to standard e-mail communication which necessarily involves e-mail server 108. This direct communication generally permits interactive conversation by users through exchanged text or other forms of messages.
A list of incoming messages 306 is displayed in window 302 as sent by one or more senders from other computers such as sender computer 106. Information is listed for each e-mail including the date received, the name of the sender (which for example is the sender's e-mail address), and the subject matter of the e-mail. Window 302 also includes sender status column 308 to indicate the on-line status of each sender of an e-mail using status indicators 310, selected for example from the following states:
If the state of the sender corresponds to “ON” or “AC”, then the client user is able to initiate a real-time messaging request to the sender. The state of “ON” indicates that the client user has logged into the messaging system. The state of “AC” indicates that the client user has logged into the messaging system and further has affirmatively taken action on sender computer 106 to indicate a desire, which is communicated from sender computer 106 to messaging system server 102, to receive requests for real-time messaging from the client user and other members of the messaging system. If the state is “OFF”, then the sender is not currently on-line to the messaging system. If the state is “DND”, then the client user is not able to initiate real-time messaging. If the state is “NI”, then the sender is not a member of the messaging system, and messaging system server 102 will not have status information for this sender.
Incoming message window 302 includes an action initiator 312, such as a reply button or icon, for sending a reply e-mail to the sender and an action initiator 314, such as a chat button or icon, for engaging the sender in real-time messaging. Action initiators 312 and 314 may also be implemented as pull-down menu options or by other standard user selection approaches.
Messaging system server 102 (See
In step 702, messaging system server 102 determines the member information to be sent to client computer 104. This information is stored in hidden contacts file 112. Server 102 generates the appropriate information to send by comparing messaging system contacts file 114 with approved contacts file 116 and all other such contacts files for other senders in order to determine which senders have given the client user permission to learn their on-line status. The information so generated is periodically transmitted to client computer 104. Note that hidden contacts file 112 will contain information for all senders of e-mail to client computer 104 even if such senders are not listed in visible contacts file 110. Thus, the client user may determine the status of senders even if they are not included in visible contacts file 110. It should be noted, however, that such unlisted senders will not be able to receive information from server 102 regarding the on-line status of the client user. An option that may be alternatively incorporated into e-mail application 105 is the automatic inclusion of the appropriate selected alias for every such sender, which is not already listed in visible contacts file 110, upon receipt of an e-mail from such sender.
In step 704, e-mail application 105 updates sender status column 308 of incoming message window 302 for all incoming messages 306 currently listed in window 302. Hidden contacts file 112 contains information for each sender including the e-mail address and contact status transmitted by server 102 from contacts file 114. For each message 306, the e-mail address of the sender is compared to the e-mail addresses in hidden contacts file 112. For each corresponding match, the contact status information from file 112 is used to determine the status indicator 310 that is displayed. If a sender's e-mail address is not found in file 112, then the status indicator 310 indicates that no information is available regarding the status of such sender. The client application will, for example, update status indicators 310 about every 5 to 15 minutes.
In step 706, the e-mail address of the sender of each newly-received e-mail is obtained by parsing the header of the e-mail. The address is then compared to hidden contacts file 112. Also, as each new e-mail message is received by e-mail application 105, the corresponding on-line sender status information for such e-mail is updated and indicated in incoming message window 302 at the time the new e-mail is included in the list of incoming messages 306.
In step 708, if the sender's e-mail address for such new message is listed in file 112, then the client application provides an appropriate status indicator 310 corresponding to the state of such sender contained in file 112. If such sender's e-mail address is not contained in file 112, then status indicator 310 indicates that no information is available.
The client user may conveniently respond to any sender listed in window 302 using a standard reply e-mail by selecting action initiator 312, for example, using a mouse pointing device. If status indicator 310 for such sender indicates a state in which the sender is may accept real-time messaging, for example, the states of “ON” and “AC”, then the user can initiate real-time messaging with the sender by selecting action initiator 314, for example, using a mouse pointing device.
In step 712, if the user chooses to send a standard reply e-mail, then the client application prepares and sends a reply using conventional Internet protocols. In step 714, if the user initiates real-time messaging, then the client application initiates real-time messaging directly with sender computer 106.
Regardless of whether the user selects to send a reply e-mail or to initiate real-time messaging, as mentioned above, the client application will continue to cycle through the process flow illustrated in
The types of information sent back and forth between client computer 104 and messaging system server 102 during the operation of the method above will depend on the particular method of communication implemented. For example, client computer 104 may send a periodic request to messaging system server 102 for the receipt of changes that have occurred since the client computer's last request. This request could also include a request for any new messages intended for the client. Additional information that may be sent to the server may include any changes the client user has made to his or her status or to visible contacts file 110. However, it is preferred that the client computer update the server at the time of any change in the client user's status or to visible contacts file 110. With this preferred approach, the client user does not have to wait until the next periodic request to the server in order for changes in status or visible contacts to become effective in the messaging system.
The messaging system and method of operation as described above will work in general in conjunction with any generic real-time or instant messaging system, such as Valent Software's NETCLUBS system. Also, the e-mail client application computer program product according to the present invention may be distributed in many standard ways including sending as stored on conventional media such as a CD-ROM, a floppy disk, or an optical disk or by downloading from a memory storage device on a server set up for downloading the computer program to a customer's computer over a conventional communications link. The e-mail application may be installed and stored on a customer's computer on a standard storage medium such as a fixed hard drive or a removable hard drive. The computer program product of the present invention is intended to cover all such computer-readable storage media and devices.
Not all senders of e-mails will be included in the group of internal contacts 800. An external contact 802, which is not in communication with server 102, may also send an e-mail to client computer 104 through e-mail server 804. The client user may respond to external contact 802 using standard reply e-mail sent through e-mail server 806. The client user will not have on-line status information for external contact 802.
The client user will be able to obtain on-line status information for any of internal contacts 800 if such contacts have included the client user on their respective approved contacts file. The client user may initiate real-time messaging as described above with internal contacts 800 as represented for one such contact by arrows 812.
By the foregoing, a novel and unobvious messaging system and method for real-time messaging that permits a client user to determine in a single user interface application window the on-line status of senders who have sent e-mail messages to the user has been disclosed by way of preferred embodiments.
Although specific embodiments have been described above, numerous modifications and substitutions may be made without departing from the spirit of the invention. For example, the above invention could be incorporated as an add-in computer program to an existing e-mail application lacking the features of the present invention as described herein. This could be done, for example, through an application program interface provided by the creator of the e-mail application. Accordingly, the invention has been described by way of illustration rather than limitation.