Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Email Queue plugin for CakePHP with Sender command to batch deliver emails using a cron job or offline worker
PHP

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Config/Schema
Console/Command
Model
Test
README.md

README.md

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.

Requirements

  • CakePHP 2.x

Installation

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

[Manual]

[GIT Submodule]

In your app directory type:

git submodule add git://github.com/nodesagency/cakephp-email-queue.git Plugin/EmailQueue
git submodule init
git submodule update

[GIT Clone]

In your plugin directory type

git clone git://github.com/nodesagency/cakephp-email-queue.git Plugin/EmailQueue

Enable plugin

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

CakePlugin::load('EmailQueue');

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.

Usage

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
    • 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
    • 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.