expertcoder / swiftmailer-send-grid-bundle
Swiftmailer Transport and Symfony bundle for Sendgrid
Installs: 209 366
Dependents: 0
Suggesters: 0
Security: 0
Stars: 14
Watchers: 3
Forks: 15
Open Issues: 1
Type:symfony-bundle
Requires
- php: >=7.0.0
- sendgrid/php-http-client: ~3.9.4
- sendgrid/sendgrid: ^7.0
- symfony/framework-bundle: ~2.7|~3.3|~4.0|~5.0
- symfony/swiftmailer-bundle: ~3.2
- symfony/yaml: ~2.7|~3.3|~4.0|~5.0
Requires (Dev)
README
SwiftmailerSendGridBundle
Symfony bundle for SendGrid. Utilizes the SendGrid PHP Library https://github.com/sendgrid/sendgrid-php to make it compatiable with SwiftMailer.
Older version (1.x) can be found here: https://github.com/expertcoder/SwiftmailerSendGridBundle/tree/1.x
Installation
composer require expertcoder/swiftmailer-send-grid-bundle
or manually
composer.json
"require": { ... "expertcoder/swiftmailer-send-grid-bundle": "~2.0" }
config/packages/swiftmailer.yaml
swiftmailer: transport: expertcoder_swift_mailer.send_grid
Don't forget to set your Sendgrid API Key in your .env file, and that you can set your mail's categories from config/packages/expert_coder_swiftmailer_send_grid.yaml
Applications that don't use Symfony Flex
AppKernel.php
$bundles = [ // ... new ExpertCoder\Swiftmailer\SendGridBundle\ExpertCoderSwiftmailerSendGridBundle(), ];
parameters.yml.dist
parameters: sendgrid_api_key: PleaseEnterSendGridApiKey
config.yml
swiftmailer: transport: expertcoder_swift_mailer.send_grid expert_coder_swiftmailer_send_grid: api_key: %sendgrid_api_key% categories: [my_category] # optional, will be added to all mails sent (can be seen on sendgrid dashboard)
Symfony 3
Since Symfony 3.2, you must name the custom transport service swiftmailer.mailer.transport.< name > so you can use one of the solutions below:
services.yml
services: swiftmailer.mailer.transport.expertcoder_swift_mailer.send_grid.transport: alias: expertcoder_swift_mailer.send_grid.transport
OR
config.yml
swiftmailer: transport: 'swiftmailer.mailer.transport.expertcoder_swift_mailer.send_grid'
Tests
This bundle provide a little helper to launch tests locally and here is a quick explanation:
- The
config_test.yml
file contains configuration associated with the bundle. - The
manual-test.sh
helps you test against a specific symfony version and is the main helper to execute tests. You just have to dosh tests/manual-test.sh versionNumber
where versionNumber is the main Symfony version you want to test (ex: 4) - The last file contains PhpUnit tests with help of
nyholm/symfony-bundle-test
. Note that we set a timeout of 1sec when sending mail to sendgrid as we do not test the actual sendgrid API with a real key.
Important !
Following RFC 1341, section 7.2, if either text/html
or text/plain
are to be sent in your email: text/plain
needs to be first, followed by text/html
, followed by any other content.
For more informations, please see SwiftMailer and RFC 1341