h2. mq
A Rails gem that generates an MVC stack that does email queuing
h3. What it does
mq is a generator that generates an MVC stack for queuing emails. It has a UI too.
I got tired of dealing with crappy email queuing systems in Rails, so I wrote my own.
h3. Requirements
None.
h3. How to Install
sudo gem install mdarby-mq -s http://gems.github.com
h3. How to Use
Assuming you'd like to name your mq table @Email@, and your Mailer model is named @Notifier@
Generate the files necessary for your app:
./script/generate mq Email Notifier
mq requires your Mailer methods accept an email address as its first parameter, so a Mailer method should look like:
Notifier.send_email_method(email_address)
Of course, you can pass as many parameters as you'd like:
Notifier.send_email_method(email_address, some_object, some_other_object, ...)
Queue an email by calling @Email.queue@ with the name of your Notifier method as the first parameter, and the recipient email address as the second parameter, followed by anything else you'd like to pass.
Email.queue(:send_email_method, "matt@matt-darby.com")
You can pass multiple email addresses to the @Email.queue@ method and mq will automatically generate individual emails for the recipients.
Email.queue(:send_email_method, ["matt@matt-darby.com", "foo@bar.com"], ...)
h3. Delivery of queued email
You can create a cronjob (this on runs every five minutes)
*/5 * * * * cd /path/to/your/app && ./script/runner/Email.deliver_all
h3. How to Test
Complete Rspec specs are included automatically. Well, complete aside from view specs as you'll just change the damned things anyway.
h3. Help
Add a ticket to "MQ's Lighthouse Account":http://mdarby.lighthouseapp.com/projects/28699-mq/overview
h3. About the Author
My name is Matt Darby. I'm the Lead Web Developer and IT Manager at "Dynamix Engineering":http://dynamix-ltd.com and hold a Master's Degree in Computer Science from "Franklin University":http://franklin.edu in Columbus, OH.
Feel free to check out my "blog":http://blog.matt-darby.com or to "recommend me":http://www.workingwithrails.com/recommendation/new/person/10908-matt-darby