Electronic mail delivery system having a spool function

A computer-implemented method includes receiving, by a first mail transfer agent having a first spool, an electronic mail. The computer-implemented method further includes issuing, by the first mail transfer agent, a first unique identifier to be associated with the electronic mail. The computer-implemented method further includes holding the electronic mail in the first spool for a first predetermined period of time. The computer-implemented method further includes transferring the electronic mail from the first spool to a second mail transfer agent having a second spool. The computer-implemented method further includes issuing, by the second mail transfer agent, a second unique identifier to be associated with the electronic mail. The computer-implemented method further includes holding the electronic mail in the second spool for a second predetermined period of time. The computer-implemented method further includes prohibiting a transfer of the electronic mail from the second mail transfer agent to a mail recipient agent.

BACKGROUND

The present invention relates generally to electronic mail transmission and in particular to an electronic mail delivery system having a spool function.

The simple mail transfer protocol (“SMTP”) is generally accepted as the standard means for electronic mail (i.e., “email” or “mail”) transmission. Typically, user-level client mail applications use the SMTP only for sending messages to a mail server for relaying. Under the SMTP, an email is submitted by a mail client (i.e., mail user agent (“MUA”)) to a mail server (mail submission agent (“MSA”)). Next, the MSA delivers the email to a mail transfer agent (“MTA”). The MTA may then transfer the email to any number of subsequent MTA's. Here, each MTA constitutes a separate individual SMTP server. When the final MTA receives the email, the email is transferred to a mail delivery agent (“MDA”), which is a server for storing email until the email is retrieved by a user. Here, email may be retrieved by an end-user application (i.e., email clients), such as the post office protocol (“POP”) or the internet message access protocol (“IMAP”). With POP, email is downloaded, stored permanently in a local storage and deleted from the server. On the other hand, with IMAP, email remains on a remote server and is cached or temporarily stored locally when viewed by a user.

SUMMARY

A computer-implemented method includes receiving, by a first mail transfer agent, an electronic mail from a sender. The first mail transfer agent includes a first spool. The computer-implemented method further includes issuing, by the first mail transfer agent, a first unique identifier to be associated with the electronic mail. The computer-implemented method further includes holding the electronic mail in the first spool of the first mail transfer agent for a first predetermined period of time. The computer-implemented method further includes transferring the electronic mail from the first spool of the first mail transfer agent to be received by a second mail transfer agent. The second mail transfer agent includes a second spool. The computer-implemented method further includes issuing, by the second mail transfer agent, a second unique identifier to be associated with the electronic mail. The computer-implemented method further includes holding the electronic mail in the second spool of the second mail transfer agent for a second predetermined period of time. The computer-implemented method further includes prohibiting a transfer of the electronic mail from the second mail transfer agent to a mail recipient agent. A corresponding computer system and computer program product are also disclosed.

DETAILED DESCRIPTION

Regardless of the type of mail retrieval protocol implemented by an email client, the process of the SMTP remains the same. At the very core of the SMTP, outgoing mail is sequentially transferred from one MTA to another, whereby the mail is instantaneously forwarded to an MDA of the mails recipient. Accordingly, due to the speed at which mail is transferred, the inventors have observed and/or recognized that cancelling and prohibiting the transfer of mail already in transit remains problematic.

In an attempt to address the problem associated with cancelling mail, several approaches have been proposed. A first common approach to this problem has been to hold the mail for a specified time on a sender side mail client or a sender side mail server. By doing so, mail may be deleted prior to being sent to a recipient side mail client or a recipient side mail server. However, the inventors have observed and/or recognized that under the first approach, the mail cannot be deleted once the mail has reached a recipient side server. A second common approach has been to encrypt mail, whereby the mail is decrypted through the use of a key. Here, the mail may be rendered unreadable by deleting the key. However, the inventors have observed and/or recognized that under the second approach, deletion of the key is ineffective to delete mail already saved in a decrypted state.

With regard to the problem associated with prohibiting the transfer of mail, a common approach to this problem has been to enable a sender of mail to select a transfer prohibition option prior to sending the mail to a recipient. However, the inventors have observed and/or recognized that under this approach, since the option must be set prior to sending the mail, the sender is unable to prohibit the transfer of the mail already in transit.

Various embodiments of the present invention may address or improve upon some or all of the aforementioned problems or disadvantages, however it will be understood that addressing any particular problem or disadvantage is not a necessary requirement for the practice of all embodiments of the present invention.

Referring now to various embodiments of the invention in more detail,FIG. 1is a functional block diagram of a computing environment, generally designated100, suitable for operation of a mail transfer control program101in accordance with at least one embodiment of the invention.FIG. 1provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by those skilled in the art without departing from the scope of the invention as recited by the claims.

Computing environment100includes computer system102, sender system103and recipient system104interconnected over network105. Network105can be, for example, a telecommunications network, a local area network (LAN), a wide area network (WAN), such as the Internet, or a combination of the three, and can include wired, wireless, or fiber optic connections. Network105may include one or more wired and/or wireless networks that are capable of receiving and transmitting data, voice, and/or video signals, including multimedia signals that include voice, data, and video information. In general, network105may be any combination of connections and protocols that will support communications between computer system102, sender system103, recipient system104, and other computing devices (not shown) within computing environment100.

Computer system102can be a standalone computing device, a management server, a web server, a mobile computing device, or any other electronic device or computing system capable of receiving, sending, and processing data. In other embodiments, computer system102can represent a server computing system utilizing multiple computers as a server system, such as in a cloud computing environment. In an embodiment, computer system102represents a computing system utilizing clustered computers and components (e.g., database server computers, application server computers, etc.) that act as a single pool of seamless resources when accessed within computing environment100. Computer system102includes mail transfer control program101. In an embodiment, computer system102and mail transfer control program101may be integrated into sender system103and/or recipient system104. In an embodiment of the invention, computer system102and mail transfer control program101may be remotely located from sender system103and/or recipient system104. Computer system102may include internal and external hardware components, as depicted and described in further detail with respect toFIG. 6.

Sender system103may generally include an MUA106and one or more sender-side mail servers. In an embodiment of the invention, the one or more sender-side mail servers may be SMTP servers. In an embodiment of the invention, the one or more sender-side mail servers may be extended SMTP (“ESMTP”) servers. In an embodiment of the invention, the one or more sender-side mail servers may be local mail transfer protocol (“LMTP”) servers. More specifically, the one or more sender-side mail servers may include an MSA107and a first MTA108. In an embodiment of the invention, MSA107and first MTA108are simply different instances of the same software launched with different configurations on the same machine. In an alternative embodiment, MSA107and first MTA108are different software launched on different machines.

Recipient system104may generally include an MUA109and one or more recipient-side mail servers. In an embodiment of the invention, the one or more recipient-side mail servers may be SMTP servers. In an embodiment of the invention, the one or more recipient-side mail servers may be ESMTP servers. In an embodiment of the invention, the one or more recipient-side mail servers may be LMTP servers. More specifically, the one or more recipient-side servers may include a second MTA110and an MDA111.

FIG. 2is a flow chart diagram depicting operational steps for a mail transfer control program101in accordance with at least one embodiment of the invention. At step200, mail transfer control program101may receive, by first MTA108, an electronic mail from MSA107. More specifically, the electronic mail may be submitted by MUA106to MSA107, which in turn may deliver the electronic mail to first MTA108. In an embodiment of the invention, MUA106may be an email client. In an alternative embodiment of the invention, MUA106may be web mail. In either embodiment, an email client or web mail may provide an interface to display and edit text, as well as format the header (e.g., destination fields (“To”, “Cc”, and “Bcc”) and origination fields (“From”, “Sender”, “In-Reply-To”, and “References”)) and body of an electronic mail. In an embodiment of the invention, first MTA108may include a first spool112(i.e., “simultaneous peripheral operations online). A spool may generally be understood as a temporary storage area within an MTA that includes input and/or output data (i.e., electronic mail).

At step201, mail transfer control program101may issue, by first MTA108, a first unique identifier113to be associated with the electronic mail. A unique identifier may generally be understood as a numeric or alphanumeric string issued by an MTA that is associated with a single electronic mail within an SMTP system. At step202, mail transfer control program101may store first unique identifier113associated with the electronic mail together with the header information of the electronic mail in a first database114of first MTA108. At step203, mail transfer control program101may return, by first MTA108, first unique identifier113to MUA106. Here, first MTA108may return first unique identifier113to MUA106by using an extended function (i.e., plug-in function) of the SMTP, such as an ESMTP.

At step204, mail transfer control program101may hold the electronic mail in first spool112of first MTA108for a first predetermined period of time. At step205, responsive to holding the electronic mail in first spool112for a first predetermined period of time, mail transfer control program101may transfer the electronic mail from first spool112of first MTA108to be received by second MTA110. In an embodiment of the invention, second MTA110may include a second spool115.

At step206, mail transfer control program101may issue, by second MTA110, a second unique identifier116to be associated with the electronic mail. At step207, mail transfer control program101may store second unique identifier116associated with the electronic mail together with header information of the electronic mail in a second database117of second MTA110. At step208, mail transfer control program101may return, by second MTA110, second unique identifier116to first MTA108. Here, second MTA110may return second unique identifier116to first MTA108by using an extended function (i.e., plug-in function) of the SMTP, such as an ESMTP. Thus, by returning first unique identifier113to MUA106and second unique identifier116to first MTA108, the location and/or status of a particular electronic mail may be traced by tracking a link between each unique identifier issued by a subsequent MTA.

At step209, mail transfer control program101may hold the electronic mail in second spool115of second MTA110for a second predetermined period of time. In an embodiment of the invention, at step210, responsive to holding the electronic mail in second spool115of second MTA110for a second predetermined period of time, the electronic mail may be automatically transferred to MDA111, wherein a recipient may be notified of the presence of the electronic mail via MUA109.

FIG. 3is a flow chart diagram depicting operational steps for mail processing performed by a mail transfer control program101in accordance with at least one embodiment of the invention. At step300, prior to performing step210, mail transfer control program101may transmit a mail arrival notification to recipient140. Mail transfer control program101may transmit a mail arrival notification by any generally known messaging protocols, including, but not limited to email, SMS, and push-notification. At step301, recipient140may respond to the mail arrival notification. At step302, responsive to responding to the mail arrival notification, second MTA110may perform mail processing. In an embodiment, mail processing may include deleting the electronic mail from second spool115of second MTA110. In an embodiment, mail processing may include holding the electronic mail in second spool115of second MTA110. In an embodiment, mail processing may include transferring the electronic mail from second spool115of second MTA110to MDA111, wherein the electronic mail may be read by recipient140. By responding to the mail arrival notification, recipient140may receive the electronic mail without waiting for the specified period of time allotted for the electronic mail to be held in second spool115of second MTA110. It should be appreciated that the mail arrival notification eliminates the possible transfer of unwanted or infected mail from being transferred and saved in a recipient's mailbox. By adopting the use of a push-notification, quick responses to incoming mails for the recipient may be enhanced. Furthermore, since only the mail address of the sender and headline of the electronic mail may be confirmed from the content of a mail arrival notification, it becomes possible to avoid virus infection caused by downloading electronic mail to a recipient's mailbox.

In embodiments of the invention, sender130or a system administrator may dynamically change the holding time of first spool112of first MTA108and second spool115of second MTA110for each electronic mail sent from MUA106. In embodiments of the invention, sender130may perform a forced transfer of the electronic mail being held in second spool115of second MTA110by dynamically changing the holding time of second spool115of second MTA110. In embodiments of the invention, the electronic mail may automatically be cancelled or deleted responsive to the electronic mail being held in second spool115of second MTA110for the second predetermined period of time.

FIG. 4is a flow chart diagram depicting operational steps for mail cancellation of an electronic mail performed by a mail transfer control program101in accordance with at least one embodiment of the invention. Here, mail cancellation may generally be understood as prohibiting the electronic mail from being transferred to a mail recipient agent (i.e., MDA111and/or a third MTA118). At step400, prior to performing step210, sender130may prohibit a transfer of the electronic mail from second spool115of second MTA110to a mail recipient agent by issuing a cancellation request for the electronic mail. At step401, responsive to issuing a cancellation request, mail transfer control program101may identify the location of the electronic mail by tracking a link between each unique identifier issued by each subsequent MTA. At step401A, mail transfer control program101may identify first MTA108through first unique identifier113associated with the electronic mail that was returned to MUA106. Similarly, at step401B, mail transfer control program101may identify second MTA110through second unique identifier116associated with the electronic mail that was returned to first MTA108. At step402, responsive to identifying the location of the electronic mail (e.g., second MTA110), mail transfer control program101may cancel or delete the electronic mail being held in second spool115of second MTA110.

FIG. 5is a flow chart diagram depicting operational steps for transfer prohibition of an electronic mail performed by a mail transfer control program101in accordance with at least one embodiment of the invention. Once the electronic mail has been transferred to MDA111(step210), whether automatically or by force transfer, the electronic mail can no longer be cancelled. However, at step500, sender130may prohibit a transfer of the electronic mail from second MTA110to third MTA118by issuing a request for transfer (i.e., forwarding) prohibition of the electronic mail. Here, a transfer prohibition may generally be understood as prohibiting the electronic mail from being transferred to a third MTA118. At step501, responsive to issuing a transfer prohibition request, mail transfer control program101may identify the location of the electronic mail by tracking a link between each unique identifier issued by each subsequent MTA. At step501A, mail transfer control program101may identify first MTA108through first unique identifier113associated with the electronic mail that was returned to MUA106. Similarly, at step501B, mail transfer control program101may identify second MTA110through second unique identifier116associated with the electronic mail that was returned to first MTA108. At step502, responsive to identifying the location of the electronic mail (e.g., second MTA110), mail transfer control program101may notify second MTA110that the electronic mail having a message-ID XXXX1 is prohibited from being forwarded to third MTA118. At step503, once notified, second MTA110may scan the “In-Reply-To” and “References” sections of the header of each electronic mail to be forwarded. At step504, responsive to the message-ID corresponding to a transfer prohibition request is identified (message-ID XXXX1), second MTA110may interrupt the transfer of the electronic mail (message-ID XXXX1) to third MTA118.

Some embodiments of the present invention may include one, or more, of the following features, characteristics, operations and/or advantages: (i) a spool being provided on each MTA to hold electronic mail for a specified period of time, so that operations such as mail delivery state (i.e., identifying the location of electronic mail by tracking a link between each unique identifier issued by each subsequent MTA), mail cancellation and mail transfer prohibition may be performed; (ii) a mail arrival notification mechanism which notifies recipients of the presence of electronic mail being held in the spool and which enables the recipients to execute mail processing (e.g., mail reception, retention, and deletion) by responding to the mail arrival notification; (iii) a mail arrival notification mechanism which notifies recipients of the presence of electronic being held in the spool via push-notification, SMS, etc. for mobile phones and allows for a quick response to incoming mail for the recipient; (iv) the ability of a user or system administrator to dynamically change the holding time of each spool and thereby perform operations such as forced transfer of mail and automatic cancellation of unread mail; and/or (v) a new mail transfer system that is applicable to existing mail clients without any particular expanded function.

Some embodiments of the present invention may include one, or more, of the following features, characteristics, operations and/or advantages: (i) holding electronic mail on MTAs within a transfer path, such that mail transmitted onto an external network may be cancelled; (ii) a web service for performing mail cancellation and mail transfer prohibition so that immediacy of cancelling mail or prohibiting the transfer of mail to third parties (i.e., forwarding) may be secured; (iii) a web service configured to share a unique identifier between adjacent MTAs for tracking a mail delivery path; (iv) a web service that maintains high security by only permitting actions such as mail cancellation and mail transfer prohibition to be performed by the original sender of the transmitted mail, thus eliminating the possibility of identity theft by third parties; a mail transfer system for preventing the spread of erroneously transmitted mail by cancelling mail to be transmitted to a recipient and preventing the transfer of mail to third party recipients; (v) a mail transfer prohibition function that may dynamically be initiated by a sender or system administrator at any point in the mail transfer process; (vi) a mail transfer prohibition function that may be used as a countermeasure against various unsolicited mails to prevent the spread of secondary and tertiary damages caused by virus-infected mail, phishing scam mail, junk mail, chain-mail, etc.; (vii) a mail transfer prohibition function that may be initiated by a user or system administrator even after mail has already been read and or transferred to third parties.

FIG. 6is a block diagram depicting components of a computer600suitable for executing the mail transfer control program101.FIG. 6displays the computer600, the one or more processor(s)604(including one or more computer processors), the communications fabric602, the memory606, the RAM616, the cache618, the persistent storage608, the communications unit612, the I/O interfaces614, the display622, and the external devices620. It should be appreciated thatFIG. 6provides only an illustration of one embodiment and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.

As depicted, the computer600operates over a communications fabric602, which provides communications between the computer processor(s)604, memory606, persistent storage608, communications unit612, and input/output (I/O) interface(s)614. The communications fabric602may be implemented with any architecture suitable for passing data or control information between the processors604(e.g., microprocessors, communications processors, and network processors), the memory606, the external devices620, and any other hardware components within a system. For example, the communications fabric602may be implemented with one or more buses.

The memory606and persistent storage608are computer readable storage media. In the depicted embodiment, the memory606comprises a random access memory (RAM)616and a cache618. In general, the memory606may comprise any suitable volatile or non-volatile one or more computer readable storage media.

Program instructions for the mail transfer control program101may be stored in the persistent storage608, or more generally, any computer readable storage media, for execution by one or more of the respective computer processors604via one or more memories of the memory606. The persistent storage608may be a magnetic hard disk drive, a solid state disk drive, a semiconductor storage device, read-only memory (ROM), electronically erasable programmable read-only memory (EEPROM), flash memory, or any other computer readable storage media that is capable of storing program instructions or digital information.

The media used by the persistent storage608may also be removable. For example, a removable hard drive may be used for persistent storage608. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer readable storage medium that is also part of the persistent storage608.

The communications unit612, in these examples, provides for communications with other data processing systems or devices. In these examples, the communications unit612may comprise one or more network interface cards. The communications unit612may provide communications through the use of either or both physical and wireless communications links. In the context of some embodiments of the present invention, the source of the various input data may be physically remote to the computer600such that the input data may be received and the output similarly transmitted via the communications unit612.

The I/O interface(s)614allow for input and output of data with other devices that may operate in conjunction with the computer600. For example, the I/O interface614may provide a connection to the external devices620, which may be as a keyboard, keypad, a touch screen, or other suitable input devices. External devices620may also include portable computer readable storage media, for example thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention may be stored on such portable computer readable storage media and may be loaded onto the persistent storage608via the I/O interface(s)614. The I/O interface(s)614may similarly connect to a display622. The display622provides a mechanism to display data to a user and may be, for example, a computer monitor.