A simple bundle for integrating the sendgrid php library into the Symfony2 framework.
Require the package with the following command:
$ composer.phar require tystr/sendgrid-bundle
Enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
new Tystr\Bundle\SendgridBundle\TystrSendgridBundle(),
Add the following to your configuration file:
tystr_sendgrid:
username: YOUR_SENDGRID_USERNAME
password: YOUR_SENDGRID_PASSWORD
Retrieve the service like so:
$sendgrid = $this->get('tystr_sendgrid.sendgrid');
See the Sendgrid Documentation for more information.
The bundle supports sendgrid webhooks.
# in app/config/routing.yml
sendgrid_hooks:
resource: "@TystrSendgridBundle/Resources/config/routing.xml"
<service id="acme_sendgrid_listener" class="Acme\Bundle\SendgridListener">
<tag name="kernel.event_listener" event="sendgrid.bounce" method="onEmailBounce" />
</service>
namespace Acme\Bundle;
use Tystr\Bundle\SendgridBundle\Event\WebHookEvent;
class SendgridListener
{
public function onEmailBounce(WebHookEvent $event)
{
$this->logger->info('Address bounced: ' . $event-getEmail()->getOrElse('unknownEmail'));
}
}
In the sendgrid interface, register the URL http://yourApp.com/__tystr/sendgrid
as the webhook.