Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Email Queue plugin for CakePHP with Sender command to batch deliver emails using a cron job or offline worker

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 Config
Octocat-spinner-32 Console
Octocat-spinner-32 Model
Octocat-spinner-32 Test

Interactive shell for CakePHP

This plugin provides an interface for creating emails on the fly and store them in a queue to be processed later by an offline worker using a cakephp shell command.


  • CakePHP 2.x


There are a few ways you can choose for intalling this plugin:


[GIT Submodule]

In your app directory type:

git submodule add git:// Plugin/EmailQueue
git submodule init
git submodule update

[GIT Clone]

In your plugin directory type

git clone git:// Plugin/EmailQueue

Enable plugin

In 2.0 you need to enable the plugin your app/Config/bootstrap.php file:


If you are already using CakePlugin::loadAll();, then this is not necessary.

Load required database table

In order to use this plugin, you need to create a database table. Required SQL is located at

# Config/Schema/email_queue.sql

Just load it into your database.


Whenever you need to send an email, use the EmailQueue model to create and queue a new one by storing the correct data:

ClassRegistry::init('EmailQueue.EmailQueue')->enqueue($to, $data, $options);

enqueue method receives 3 arguments:

  • First argument is a string or array of email addresses that will be treated as recipients.
  • Second arguments is an array of view variables to be passed to the email template
  • Third arguments is an array of options, possible options are
    • subject : Email's subject
    • send_at : date time sting representing the time this email should be sent at (in UTC)
    • template : the name of the element to use as template for the email message
    • layout : the name of the layout to be used to wrap email message
    • format : Type of template to use (html, text or both)
    • config : the name of the email config to be used for sending

Sending emails

Emails should be sent using bundled Sender command, use -h modifier to read available options

# Console/cake EmailQueue.Sender -h

You can configure this command to be run under a cron or any other tool you wish to use.

Something went wrong with that request. Please try again.