NAME Email::Blaster - Scalable Mass Email System SYNOPSIS Generally, don't use this module from your code. Use the supplied scripts instead. DESCRIPTION Email::Blaster is the latest in a long, long line of mass-emailer systems I have written since 2002. This version has many features. * Clustering Support Uses memcached and libevent to do the heavy lifting. * Testing mode. Send a few messages to yourself before you turn on the firehose. * Domain-based throttling with hourly limits. Never get blacklisted again because of email flooding too quickly from your network. * Configurable (and subclassable) behaviors and components. If configuration alone doesn't get you what you want, you can always subclass something (i.e. MailSender or MaillogWatcher) to get the desired behavior. * Scales Out Well (Clustering). Designed to spread the work out across many, many, many servers. If your email list has 1Million subscribers, you could *reliably* send your messages to them in a matter of minutes. Add more servers, get more capacity and throughput. * Event handlers (in serial). Handle server-level events with a simple plugin. Events like server startup and shutdown, the start or end of a transmission, etc. More details to follow. HANDLING EVENTS Email::Blaster offers the following events, which can be handled by one or more subclasses of the appropriate class: server_startup Subclass Email::Blaster::ServerStartupHandler and add the following to your config: <handlers> ... <server_startup> ... <handler>My::StartupHandler</handler> </server_startup> server_shutdown Subclass Email::Blaster::ServerShutdownHandler and add the following to your config: <handlers> ... <server_shutdown> ... <handler>My::ShutdownHandler</handler> </server_shutdown> init_transmission Subclass Email::Blaster::TransmissionInitHandler and add the following to your config: <handlers> ... <init_transmission> ... <handler>My::TransmissionInitHandler</handler> </init_transmission> begin_transmission Subclass Email::Blaster::TransmissionBeginHandler and add the following to your config: <handlers> ... <begin_transmission> ... <handler>My::TransmissionBeginHandler</handler> </begin_transmission> end_transmission Subclass Email::Blaster::TransmissionEndHandler and add the following to your config: <handlers> ... <end_transmission> ... <handler>My::TransmissionEndHandler</handler> </end_transmission> message_bounced Subclass Email::Blaster::MessageBouncedHandler and add the following to your config: <handlers> ... <message_bounced> ... <handler>My::MessageBouncedHandler</handler> </message_bounced> SUPPORT Visit <http://www.devstack.com/contact/> or email the author at <jdrago_999@yahoo.com> Commercial support and installation is available. AUTHOR John Drago <jdrago_999@yahoo.com> COPYRIGHT AND LICENSE Copyright (C) 2008 by John Drago This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.