The present invention relates in general to data processing systems, and in particular, for electronic mail client/server systems including mechanisms for automatically alerting a user, or users, to a potential undeliverable addressee.
E-mail processing in modern data processing systems is typically based on a client/server model. An e-mail client, usually deployed on a user's workstation or personal computer receives user input and generates an e-mail message which is typically transferred to the server (generically referred to as a mail transfer agent (MTA). The MTA then transfers the mail to one or more intermediate MTAs and ultimately to an MTA corresponding to the recipient of the e-mail message (as determined by the e-mail address of the addressee). Transfer of the e-mail message commonly uses the Simple Mail Transfer Protocol (SMTP).
In accordance with these e-mail protocols, if a destination is temporarily unreachable, the ingress MTA queues the mail and will attempt to retransmit the mail periodically. Typically a resend algorithm will attempt to resend mail every four hours for up to one week. If after that time the mail still fails, the retries are suspended and the undeliverable mail deleted.
Commonly, such systems will notify the sender that the mail failed and that retries will be attempted. However, a user may subsequently attempt to send e-mail to the same address. However, there is nothing to alert the user that the address may be problematic. Consequently, there is a need in the art for mechanisms to alert a user to a potential problem with an e-mail addressee.
The aforementioned needs are addressed by the present invention. Accordingly, there is provided in one embodiment a method for alerting e-mail users. If a failed delivery message is received, an indicator associated with an address of an addressee corresponding to a failed delivery message is set. In conjunction with the display of the address, a perceptive cue, such as visual highlighting and/or audible alert is provided. If there is a successful delivery of an e-mail to the address, the indicator is cleared. The indicator may also be cleared after a user-configurable time has elapsed. Additionally, an association may be established between the failed address and an optionally cached copy of the undelivered e-mail.
The foregoing has outlined rather broadly the features and technical advantages of one or more embodiments of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention.
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
A mechanism to alert to a user that an address of an e-mail message may be undeliverable is provided. If a “bounced” mail notification is received, an indicator associated with the address to which the notification pertains is set. When accessed by the user, in response to the indicator being set, the address is displayed in conjunction with one or more perceptive cues, such as highlighted color etc. If an indication that the delivery problems with respect to the address are resolved, such as receipt of an e-mail from the addressee or a successful delivery notification, the identifier is cleared whereby the alert is terminated. Additionally, an association may be established between the failed address and an optionally cached copy of the undelivered e-mail.
In the following description, numerous specific details are set forth such to provide a thorough understanding of the present invention. For example, particular e-mail transport protocols may be referred to, however, it would be recognized by those of ordinary skill in the art that the present invention may be practiced without such specific details, and in other instances, well-known circuits have been shown in block diagram form in order not to obscure the present invention in unnecessary detail. Refer now to the drawings, wherein depicted elements are not necessarily shown to scale and wherein like or similar elements are designated by the same reference numeral through the several views.
Mail clients such as mail clients 102a and 102b may include an address book (108a, 108b) which may be viewed as a form of a database maintained by the mail client of recipient addresses entered by the user. An address book may be accessed by a user via a graphical user interface (GUI). Such embodiments are used in mail clients such as Eudora. Alternatively, a mail client may access the address book in response to a user keying in an addressee and a mail message being composed by the user in which the mail client performs address completion by comparing the entered keystrokes with entries in the address book. Exemplary implementations include an e-mail client incorporated in the Netscape Navigator browser and the Mozilla web browser. Additionally, mail clients 102a and 102b include address alert mechanism 110a and 110b, respectively. The operation of such an address alert mechanism, in accordance with the principles of the present invention, will be discussed hereinbelow in conjunction with
An alternative architecture based on the groupware application concept is illustrated in
A mechanism for providing a user with an alert for problematic e-mail addressees, will now be described in conjunction with
Refer now to
Note that the operation in step 203 to determine the addressee of the “bounced” mail may be effected by parsing incoming mail for signatures indicative of a failed delivery. In particular, this may include parsing incoming e-mail for RFC1892-compliant failed delivery reports. RFC1892 defines an Internet standard for the use of the Multipart/Report content-type with respect to delivery status reports. For example, publicly available “bounced” mail parsers, written in Perl, may be found at the Comprehensive Perl Archive Network (CPAN) which is a central repository for Perl software (www.cpan.org). (Artisans of ordinary skill would recognize that Perl is a scripting language particularly adapted for text processing and available across platforms.) Such parsers may be adapted for use in conjunction with the present invention by forking a Perl process, or alternatively by embedding Perl into the source code for the preexisting client. (Both are established techniques in the programming art.) Using these resources in an embodiment of the present invention to determine failed delivery messages may advantageously exploit the regular expression capabilities available in Perl. The parser also returns the failed mail address.
As described above in conjunction with
In step 204, the address cache, and address book or address database, in accordance with the e-mail system architecture is accessed for the failed mail address. In step 206, the corresponding indicator is tested, and if not set, the indicator is set in step 208.
In step 210, it is determined if the failed e-mail is to be cached. This may be a user-selected option via a GUI preferences panel, command-line option or similar technique. Additionally, the user may specify a time interval after the expiration of which the bounced mail is deleted from the cache. The failed message may be cached and associated with the address entry in the address book or address database. For example, the undelivered mail may be saved in a folder with the associated address keying folder. In this way, the user has a record of the e-mail that was not delivered. If the failed message is to be cached, in step 212 the e-mail is cached and associated with the address, for example by including a reference to the address data structure in the corresponding cache entry. This may then be used to peruse the cached bounced mail, as described in conjunction with
Returning to step 206, If the indicator is set, indicating that another e-mail to that address has failed, and a successful delivery to that address has not intervened (as discussed further below), process 200 returns to step 202 to continue to test for failed e-mail messages.
Refer now to
In step 302, the address received in step 301 is accessed in the address book, address cache, or more generally the address database, or in a bounced mail address list in an embodiment of the present invention using such a list.
In step 304, the indicator associated with the address indicating if an e-mail message to that address has failed delivery is tested. Recall, the indicator may be a timestamp, having a nonzero value if the associated address has had problematic mail delivery. The timestamp may, be used to clear the indicator after the expiration of a preselected time interval. Note that the interval may be user configurable. Typical e-mail clients provide mechanism for setting user preferences such as an options or preferences dialog pane (in GUI-based clients, such as Microsoft Outlook, or Eudora) or a configuration file (in CLI-based clients, such as Mutt).
If, in step 304, the indicator is set, in step 305, the value (i.e. the timestamp) is compared with the current time. If in step 305, the elapsed time does not exceed the preselected time interval, the display of the address is highlighted, for example, by changing the color or font, changing the background color or other similar device in the data processing art used to distinguish elements in a display, step 306.
Additionally (not shown in
Conversely, if in step 305 the elapsed time exceeds the preselected value, the indicator is cleared, step 307. The address is displayed normally in step 308.
Returning to step 304, if the indicator is not set, (the timestamp is zero, for example) indicating that the address is not problematic, the address is displayed normally, step 308.
Refer now to
Additionally, in step 406, if the address indicator is set, in step 408 it is determined if the user elects to send the mail message. For example, a user prompt may be displayed in an e-mail client having a GUI for example by “pressing a send or cancel button,” or, alternatively via a command line parameter, for example. If the user has elected to send the message, in step 410 a delivery status notification is requested. Additionally, a delivery status notification may be automatically triggered if the e-mail is sent to an addressee in the same host as the undelivered mail. A delivery status notification (DSN) in accordance with the SMTP service extension for delivery status notifications, RFC1891. A DSN is commonly known as a return receipt.
In step 412, the mail message is sent, typically using the aforementioned SMTP process discussed above in conjunction with
Returning to step 406, if the indicator associated with address entered by the user is not set, the e-mail is sent as previously discussed.
When delivery to a problematic addressee is resolved, alerts with respect to that address may be removed.
In step 502, it is determined if the contents of the message are a successful delivery notification. This may be determined by parsing the message as described in conjunction with step 202,
If, however, in step 504 the received e-mail was not a successful delivery notification but an incoming e-mail message, in step 508 the sender's address is parsed, and using that address, it is determined if the corresponding indicator is set, step 504. If so, the address is cleared in step 506. In this way, the successful receipt of a message from a previously problematic addressee may be used to remove an alert with respect to that recipient.
If, in either the case of a successful delivery notification or the receipt of an e-mail message from a particular addressee, and it is determined in step 504 that the indicator is not set, process 500 returns to step 202,
In
In
Preferred implementations of the invention include implementations as a computer system programmed to execute the method or methods described herein, and as a computer program product. According to the computer system implementation, sets of instructions for executing the method or methods are resident in the random access memory 814 of one or more computer systems configured generally as described above. These sets of instructions, in conjunction with system components that execute them may alert a sender of an e-mail of a problematic address as described hereinabove. Until required by the computer system, the set of instructions may be stored as a computer program product in another computer memory, for example, in disk drive 820 (which may include a removable memory such as an optical disk or floppy disk for eventual use in the disk drive 820). Further, the computer program product can also be stored at another computer and transmitted to the users work station by a network or by an external network such as the Internet. One skilled in the art would appreciate that the physical storage of the sets of instructions physically changes the medium upon which is the stored so that the medium carries computer readable information. The change may be electrical, magnetic, chemical, biological, or some other physical change. While it is convenient to describe the invention in terms of instructions, symbols, characters, or the like, the reader should remember that all of these in similar terms should be associated with the appropriate physical elements.
Note that the invention may describe terms such as comparing, validating, selecting, identifying, or other terms that could be associated with a human operator. However, for at least a number of the operations described herein which form part of at least one of the embodiments, no action by a human operator is desirable. The operations described are, in large part, machine operations processing electrical signals to generate other electrical signals.
Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention s defined by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5684843 | Furukawa et al. | Nov 1997 | A |
5797094 | Houde et al. | Aug 1998 | A |
5958006 | Eggleston et al. | Sep 1999 | A |
6496573 | Ichimura | Dec 2002 | B1 |
6618749 | Saito et al. | Sep 2003 | B1 |
6640230 | Alexander et al. | Oct 2003 | B1 |
6763377 | Belknap et al. | Jul 2004 | B1 |
6782414 | Xue et al. | Aug 2004 | B1 |
6854007 | Hammond | Feb 2005 | B1 |
6963910 | Belknap et al. | Nov 2005 | B1 |
6963993 | Semancik et al. | Nov 2005 | B1 |
7069302 | Saito et al. | Jun 2006 | B2 |
7117259 | Rohwer | Oct 2006 | B1 |
7302470 | Oizumi | Nov 2007 | B2 |
7505974 | Gropper | Mar 2009 | B2 |
7606908 | Arunkumar | Oct 2009 | B2 |
7640306 | Appelman et al. | Dec 2009 | B2 |
7814068 | McDonald et al. | Oct 2010 | B2 |
20020143879 | Sommerer | Oct 2002 | A1 |
20030063326 | Kiyono et al. | Apr 2003 | A1 |
20030084110 | Shono | May 2003 | A1 |
20030110223 | Hamilton et al. | Jun 2003 | A1 |
20030164990 | Watanabe | Sep 2003 | A1 |
20040003283 | Goodman et al. | Jan 2004 | A1 |
20040006747 | Tyler | Jan 2004 | A1 |
20040010558 | Saito et al. | Jan 2004 | A1 |
20040030893 | Karamchedu et al. | Feb 2004 | A1 |
20040030916 | Karamchedu et al. | Feb 2004 | A1 |
20040030917 | Karamchedu et al. | Feb 2004 | A1 |
20040030918 | Karamchedu et al. | Feb 2004 | A1 |
20040083230 | Caughey | Apr 2004 | A1 |
20040172454 | Appelman et al. | Sep 2004 | A1 |
20070174402 | Tomkow | Jul 2007 | A1 |
20080065891 | Karamchedu et al. | Mar 2008 | A1 |
20100077049 | Appelman et al. | Mar 2010 | A1 |
Number | Date | Country | |
---|---|---|---|
20050015450 A1 | Jan 2005 | US |