a2design-company/sendgrid-webapi-cakephp-plugin

Sendgrid WebAPI CakePHP plugin

v1.0.1 2016-04-11 01:55 UTC

README

Usage

This plugin uses CakeEmail class, and works almost the same.

Basic example:

App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail('sendGrid');

$email->to('recipient@domain.com');
$email->subject('Test email via SendGrid');
$email->send('Message');

More advanced example:

App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail('sendGrid');

$email->template('default', 'default');
$email->emailFormat('html');
$email->viewVars(array('name' => 'Your Name'));
$email->to(array('recipient1@domain.com' => 'Recipient1', 'recipient2@domain.com' => 'Recipient2'));
$email->subject('Test email via SendGrid');
$email->addHeaders(array('X-Tag' => 'my tag'));
$email->attachments(array(
    'cake.icon.png' => array(
        'file' => WWW_ROOT . 'img' . DS . 'cake.icon.png'
	)
));

$email->send();

The syntax of all parameters is the same as the default CakeEmail class:

Installation

You can clone the plugin into your project:

cd path/to/app/Plugin
git clone git@github.com:a2design-company/sendgrid-webapi-cakephp-plugin.git Sendgrid

Bootstrap the plugin in app/Config/bootstrap.php:

CakePlugin::load('Sendgrid');

Configuration

Create the file app/Config/email.php with the class EmailConfig.

<?php
class EmailConfig {
	public $sendGrid = array(
            'transport' => 'Sendgrid.Sendgrid',
            'from' => 'you-email@sendgrid.com',
            'fromName' => 'You name',
            'timeout' => 30,
            'username' => 'username@sendgrid.com', //SendGrid username
            'password' => 'password', //SendGrid password
            'client' => null,
            'log' => false,
            'emailFormat' => 'both',
            'category' => 'transaction', //default SendGrid category for emails
            'count' => 200, //count of email to send in one API call, max 500, default 500
        );
}

Requirements

CakePHP 2.0+

License

Licensed under The MIT License

Developed by A2 Design Inc.