Email::Blaster - Scalable Mass Email System
Generally, don't use this module from your code. Use the supplied scripts instead.
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.
Email::Blaster offers the following events, which can be handled by one or more subclasses of the appropriate class:
Subclass Email::Blaster::ServerStartupHandler and add the following to your config:
<handlers> ... <server_startup> ... <handler>My::StartupHandler</handler> </server_startup>
Subclass Email::Blaster::ServerShutdownHandler and add the following to your config:
<handlers> ... <server_shutdown> ... <handler>My::ShutdownHandler</handler> </server_shutdown>
Subclass Email::Blaster::TransmissionInitHandler and add the following to your config:
<handlers> ... <init_transmission> ... <handler>My::TransmissionInitHandler</handler> </init_transmission>
Subclass Email::Blaster::TransmissionBeginHandler and add the following to your config:
<handlers> ... <begin_transmission> ... <handler>My::TransmissionBeginHandler</handler> </begin_transmission>
Subclass Email::Blaster::TransmissionEndHandler and add the following to your config:
<handlers> ... <end_transmission> ... <handler>My::TransmissionEndHandler</handler> </end_transmission>
Subclass Email::Blaster::MessageBouncedHandler and add the following to your config:
<handlers> ... <message_bounced> ... <handler>My::MessageBouncedHandler</handler> </message_bounced>
Visit http://www.devstack.com/contact/ or email the author at <jdrago_999@yahoo.com>
Commercial support and installation is available.
John Drago <jdrago_999@yahoo.com>
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.
To install Email::Blaster, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Email::Blaster
CPAN shell
perl -MCPAN -e shell install Email::Blaster
For more information on module installation, please visit the detailed CPAN module installation guide.