This module can be use as a transport to send transactional e-mail using SendGrid API in Zend Framework 2.
composer require iyngaran/send-grid-transport
After install follow one of these steps:
-
Copy the contents file
vendor/iyngaran/send-grid-transport/mail.global.php.dist
and put it in yourconfig/autoload/mail.global.php
. -
If this file does not exists in your application, just copy the entire file and place into your
config/autoload
removing the .dist extension.
Then add your SendGrid API Key. To get your API Key, please visit
And also add the test email from-email address, name and to-email address, name.
// config/autoload/mail.global.php
return [
'mail' => [
'sendgrid' => [
'api_key' => 'YOUR_API_KEY',
]
],
'test-email' => [
'from' => [
'name' => 'Iyngaran Iyathurai',
'email' => '[email protected]'
],
'to' => [
'name' => 'Your name',
'email' => 'your email address'
]
]
];
After all, you must register SendGridTransport
module in your config/modules.config.php
.
// config/modules.config.php
return [
'Zend\ServiceManager\Di',
....
'Application',
'SendGridTransport'
];
Go to this Url - /send-grid-email to send a test email.
namespace SendGridTransport\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use SendGridTransport\Mail\Transport\SendGridTransport;
class SendEmailController extends AbstractActionController
{
private $sendGridTransport;
private $config;
public function __construct(SendGridTransport $sendGridTransport, array $config)
{
$this->sendGridTransport = $sendGridTransport;
$this->config = $config;
}
public function indexAction()
{
$message = new \SendGridTransport\Mail\Message();
$body = '<strong>Hello :),</strong><BR/> The SendGridTransport is working now :)';
$message->setBody($body);
$message->setFrom(
new \Zend\Mail\Address(
$this->config['test-email']['from']['email'],
$this->config['test-email']['from']['name']
)
);
$message->addTo(
new \Zend\Mail\Address(
$this->config['test-email']['to']['email'],
$this->config['test-email']['to']['name']
)
);
$message->setSubject('Testing SendGridTransport - Iyngaran');
$message->setBodyText('Hello, the SendGridTransport is working now :)');
print('<pre>');
print_r($this->sendGridTransport->send($message));
print('<pre/>');
return [];
}
}
Is strongly recommended to use the already registered service.
You can contribute with this module suggesting improvements, making tests and reporting bugs. Use issues for that.
Report errors opening Issues.