Patent ID: 7698369

Claim:
An e-mail system comprising: (A) a non-persistent or random memory comprising a plurality of data nodes, each respective data node in the plurality of data nodes uniquely representing a corresponding e-mail in a plurality of e-mails that are to be sent over a network by the e-mail system to one or more destinations; (B) an input handler, wherein the input handler comprises instructions for: (i) receiving an incoming e-mail from an e-mail client over a network connection, (ii) storing a portion of the incoming e-mail in a first location in persistent storage that is accessible by the e-mail system, (iii) digesting the incoming e-mail into a data node representing the incoming e-mail, wherein the data node includes (a) a pointer to the first location, (b) routing information for the incoming e-mail that includes a destination domain for the incoming e-mail, and (c) metadata that represents a state of processing of the incoming e-mail, (iv) adding the data node to the plurality of data nodes, wherein the adding (iv) comprises storing the data node in a queue in a plurality of queues in said non-persistent or random memory based on said destination domain of the incoming e-mail, (v) assigning a unique identifier to the incoming e-mail from a bit vector of the incoming e-mail, wherein the bit vector of the incoming e-mail includes sufficient information to reconstruct the incoming e-mail and the state of processing of the incoming e-mail by the e-mail system in the event of a disruption of the e-mail system without storing the entirety of the incoming e-mail to persistent storage, (vi) storing the bit vector of the incoming e-mail in a second location in persistent storage, and (viii) storing the unique identifier of the incoming e-mail in the data node corresponding to the incoming e-mail; and (C) an e-mail processing element, wherein the e-mail processing element comprises instructions for: (i) reading a first data node, in said plurality of data nodes, that uniquely represents a corresponding e-mail in said plurality of e-mails, (ii) determining a next action for delivery of the corresponding e-mail based at least partly on said metadata in the first data node, (iii) reconstructing the corresponding e-mail from (a) the first data node and (b) the portion of the e-mail at a first location in persistent storage identified by the pointer to the corresponding e-mail that is in the first data node, and (iv) sending the corresponding e-mail over a network to the destination domain specified by the first data node.