This plugin uses CakeEmail class, and works almost the same.
Basic example:
App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail('sendGrid');
$email->to('[email protected]');
$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('[email protected]' => 'Recipient1', '[email protected]' => '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:
You can clone the plugin into your project:
cd path/to/app/Plugin
git clone [email protected]:a2design-company/sendgrid-webapi-cakephp-plugin.git Sendgrid
Bootstrap the plugin in app/Config/bootstrap.php:
CakePlugin::load('Sendgrid');
Create the file app/Config/email.php with the class EmailConfig.
<?php
class EmailConfig {
public $sendGrid = array(
'transport' => 'Sendgrid.Sendgrid',
'from' => '[email protected]',
'fromName' => 'You name',
'timeout' => 30,
'username' => '[email protected]', //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
);
}
CakePHP 2.0+
Licensed under The MIT License
Developed by A2 Design Inc.