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:



Subclass Email::Blaster::ServerShutdownHandler and add the following to your config:



Subclass Email::Blaster::TransmissionInitHandler and add the following to your config:



Subclass Email::Blaster::TransmissionBeginHandler and add the following to your config:



Subclass Email::Blaster::TransmissionEndHandler and add the following to your config:



Subclass Email::Blaster::MessageBouncedHandler and add the following to your config:



Visit or email the author at <>

Commercial support and installation is available.


John Drago <>


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.