Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Swiftmailer Send Grid Bundle Laravel Package

expertcoder/swiftmailer-send-grid-bundle

Symfony bundle that adds a SendGrid transport for SwiftMailer, letting you send mail through SendGrid's PHP library. Configure your API key and optional categories, then set the swiftmailer transport to expertcoder_swift_mailer.send_grid. Works with Symfony Flex and older applications.

View on GitHub
Deep Wiki
Context7

Freelance Banner

SwiftmailerSendGridBundle

Latest Version Software License Build Status

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 do sh 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

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log