Patent ID: 7921165

Claim:
A system for handling the relay of messages by a message transport agent comprising: a processor configured to execute computer-executable instructions for: receiving messages and sending messages at the message transport agent for relay; after receiving messages, storing the received messages in a foreground memory at the message transport agent; after storing the received messages in the foreground memory, processing the stored received messages; after processing the stored received messages, sending the processed received messages to at least one mailbox and holding the processed sent messages at the message transport agent by moving the processed sent messages to a holding status, wherein the instructions to move the processed sent messages to a holding status comprise instructions to: redirect the processed sent messages to a background memory; while continuing to store the received messages which have not been sent in the foreground memory which is different with respect to the background memory in which the processed sent messages are stored; monitoring the at least one mailbox for failure and resending sent messages in the holding status to a failed mailbox and resending sent messages in the holding status to all mailboxes upon failure of all the monitored mailboxes; evaluating the held sent messages in the background memory in the holding status at the message transport agent with respect to a parameter; and deleting selected held sent messages in the background memory in the holding status at the message transport agent as a function of the evaluating while continuing to store the received messages which have not been sent in the foreground memory, wherein the parameter comprises a maximum amount of memory, wherein the instructions to evaluate the moved messages in the holding status comprise determining an amount of holding memory storing the messages in the holding status, and wherein the instructions to delete comprise instructions to delete at least some of the messages in the holding status when the determined amount of holding memory exceeds the maximum amount of memory; and wherein the parameter further comprises a minimum message priority, wherein the instructions to evaluate the moved messages in the holding status comprise determining a priority of each message and wherein the instructions to delete comprise instructions to delete each message in the holding status when the determined priority of the message is less than the minimum message priority.