Despite Mail_Queue being a PHP4-compatible package, I still like to use it on current projects because it is so easy to implement and because it gets the job done. So, over the last weeks (and especially since PHP moved from CVS to SVN :-)), I put in a little time, and especially with the help of Ken, we managed to push out the 1.2.3 release today.
changed license from PHP to the (New) BSD license
This is good news for two reasons. Numero uno, GPL-licensed (open source) projects may bundle
Mail_Queue now since the (new) BSD license is compatible with the GPL. And secondly, because (re-)releasing the code using this well-known license also gets rid off another entry barrier for commercial entities and also provides them with enough flexibility to use this code inside commercial applications.
This one is a tough one, and only bites you if you really adhere to backwards compatibility (aka BC) and work with an older code base. ;-)
So the story is, that with PHP4, a constructor cannot return a
PEAR_Error object. PHP4 also did not have exceptions. So what we implemented as a work around it, and of course to keep BC, was to introduce a new "factory" method (which can return a
PEAR_Error object). In addition to the factory, we added helper methods (
Mail_Queue::hasErrors()) so you can check the state of the class at any time.
This one's self-explanatory — and the only real bugfix in this release.
minor CS fixes
To make the PEAR test suite happy. :-)
We added a method to count emails in queue. This is currently only implemented when you use the MDB2-based backend. (Side-note: DB, MDB and creole backends are deprecated!)
Implemented optional support to
sleep() in between the sending process — to not hammer mail servers.
Additional parameter validation to deal with PHP's loosely typed variables.
requests #16064, #16068
These are Ken's contributions to the
Mail_Queue release — callback support to run a custom function whenever an email was send (or queued on the SMTP side). This could be used to provide extended monitoring and metrics on the sending process. Yay!
Installation, or upgrading
pear upgrade Mail_Queue
pear install Mail_Queue
There is nothing else to do. All new features are optional, and nothing requires you to touch your code base. The beauty of BC!
I added a roadmap for 1.2.4 last night, but I'm not sure if we will really get to it. I'm trying to channel all efforts to Mail_Queue2 (which is a PHP5-only port of
Mail_Queue and already contains most (if not all) the features included in
Mail_Queue's 1.2.3 release. If you would like to contribute, please check out the project on Google Code and let me know your thoughts.