E-mail system with methodology for accelerating mass mailings
First Claim
1. In an electronic mail (e-mail) system, a method for processing a plurality of e-mail messages that are being sent to recipients at various destination domains, the method comprising:
- establishing a plurality of queues in the system, zero or more of these being specific queues for handling mail to a specific set of domains, and one being a general queue for transferring e-mail to domains not handled by specific queues, each said queue being configured to spawn a number of message transport agents (MTAs) for connecting to available e-mail servers for a given domain, wherein each queue is associated with at least one message transfer agent (MTA) processing thread that establishes a connection with a recipient MTA and at least one queue is associated with a set comprising a plurality of MTA processing threads, wherein said set of MTA processing threads is dynamically configurable for optimizing resources allocated for a given queue so that the number of MTAs spawned for a given domain may exceed the number of the available e-mail servers for that given domain;
receiving at the system a request to process for transfer a plurality of outbound e-mail messages, each e-mail message specifying delivery to at least one recipient at a particular domain; and
for each given e-mail message, processing the given e-mail message by;
determining what domain the given e-mail message is destined for,if the determined domain for the given e-mail message is a specific domain handled by a corresponding specific queue, assigning the given e-mail message to the corresponding specific queue for transferring the given e-mail to said specific domain, otherwise assigning the given e-mail message to said general queue, each queue maintaining a “
ready”
list for assigning the given e-mail message to an MTA that has indicated that it is available for work, andwithout waiting for confirmation that the given e-mail message has been successfully processed for transfer to another system, proceeding to process the next one of the e-mail messages.
13 Assignments
0 Petitions
Accused Products
Abstract
An e-mail system is described that includes a mass-mail accelerator (MMA), which is particularly suited for processing mass e-mailings. Instead of being posted to a message transfer agent (MTA), outgoing messages are instead passed to the MMA for carrying out highly parallel e-mail delivery/routing. The MMA employs a plurality of queues, which may either be general or specific. A specific queue is configured to handle only e-mail destined for a particular domain, such as the AOL.com domain; a general queue is configured to handle all other e-mail. Each queue manages a pool of MTA threads. During MMA operation, once a message has been passed to a queue, that queue examines its MTA threads to see if one is ready to accept the message. If an MTA thread is ready, the queue will assign the message to that MTA. The MTA thread proceeds to handle the work of the SMTP exchange between the MMA and the target real-world MTA (e.g., an AOL MTA). While a given MTA thread is waiting for a reply from the real-world (destination) MTA (e.g., the AOL MTA), the MMA can proceed to do other work. In this manner, the bottleneck usually encountered with processing mass e-mailings is removed.
40 Citations
22 Claims
-
1. In an electronic mail (e-mail) system, a method for processing a plurality of e-mail messages that are being sent to recipients at various destination domains, the method comprising:
-
establishing a plurality of queues in the system, zero or more of these being specific queues for handling mail to a specific set of domains, and one being a general queue for transferring e-mail to domains not handled by specific queues, each said queue being configured to spawn a number of message transport agents (MTAs) for connecting to available e-mail servers for a given domain, wherein each queue is associated with at least one message transfer agent (MTA) processing thread that establishes a connection with a recipient MTA and at least one queue is associated with a set comprising a plurality of MTA processing threads, wherein said set of MTA processing threads is dynamically configurable for optimizing resources allocated for a given queue so that the number of MTAs spawned for a given domain may exceed the number of the available e-mail servers for that given domain; receiving at the system a request to process for transfer a plurality of outbound e-mail messages, each e-mail message specifying delivery to at least one recipient at a particular domain; and for each given e-mail message, processing the given e-mail message by; determining what domain the given e-mail message is destined for, if the determined domain for the given e-mail message is a specific domain handled by a corresponding specific queue, assigning the given e-mail message to the corresponding specific queue for transferring the given e-mail to said specific domain, otherwise assigning the given e-mail message to said general queue, each queue maintaining a “
ready”
list for assigning the given e-mail message to an MTA that has indicated that it is available for work, andwithout waiting for confirmation that the given e-mail message has been successfully processed for transfer to another system, proceeding to process the next one of the e-mail messages. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An electronic mail (e-mail) system providing parallel processing of e-mail messages, the system comprising:
-
a plurality of queues for processing incoming e-mail messages, at least one queue being designated as a specific queue for processing e-mail messages destined for a specific domain, wherein the queues are dynamically configurable at runtime to increase throughput via spawning multiple connections to each e-mail server for said specific domain; wherein each queue is associated with at least one, processing thread for receiving incoming e-mail messages that are to be transferred to another system, at least one queue being associated with a plurality of processing threads that may be spawned dynamically at runtime for optimizing resources allocated for said at least one queue such that the number of threads that may be spawned for a given domain can exceed the number of available e-mail servers for that given domain, and each incoming e-mail message being assigned to a particular queue based on what domain the incoming e-mail message is destined for; and wherein a given e-mail message is assigned to said specific queue when the given e-mail message is destined for said specific domain. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. An improved e-mail system, the improvement comprising:
-
dividing incoming e-mail messages that are to be processed for transfer into different groups, based on what domain each e-mail message is destined for; establishing a plurality of specific queues and accompanying processing resources for processing transfer of e-mail messages, each said specific queue handling e-mail messages destined for a frequently encountered domain; and establishing at least one general queue and accompanying processing resources for processing transfer of e-mail messages, each said at least one general queue handling e-mail messages destined for less-frequently encountered domains; wherein each said queue is configured to assign an e-mail message to a message transport agent (MTA) that is available for sending the e-mail message to a given domain, and is configured to create additional MTAs when none are available to accept work, wherein each said additional MTA is dynamically spawned for optimizing resources allocated for a given queue, and wherein the number of MTAs spawned for a given domain may exceed the number of the available e-mail servers for that given domain. - View Dependent Claims (19, 20, 21, 22)
-
Specification