CakePHP plugin for SendGrid WebAPI
Usage
This plugin uses CakeEmail class, and works almost the same., (*1)
Basic example:, (*2)
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:, (*3)
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:, (*4)
Installation
You can clone the plugin into your project:, (*5)
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:, (*6)
CakePlugin::load('Sendgrid');
Configuration
Create the file app/Config/email.php with the class EmailConfig., (*7)
<?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+, (*8)
License
Licensed under The MIT License, (*9)
Developed by A2 Design Inc., (*10)