Weave Code
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

Sendgrid Mailer Laravel Package

symfony/sendgrid-mailer

Symfony Mailer bridge for SendGrid. Configure SMTP or API transport via DSN, choose region, handle event webhooks with optional signature validation, set suppression group headers, and schedule sends (API) using a Send-At date header.

View on GitHub
Deep Wiki
Context7

Sendgrid Bridge

Provides Sendgrid integration for Symfony Mailer.

Configuration example:

# SMTP
MAILER_DSN=sendgrid+smtp://KEY@default?region=REGION

# API
MAILER_DSN=sendgrid+api://KEY@default?region=REGION

where:

  • KEY is your Sendgrid API Key
  • REGION is Sendgrid selected region (default to global)

Webhook

Create a route:

framework:
    webhook:
        routing:
            sendgrid:
                service: mailer.webhook.request_parser.sendgrid
                secret: '!SENDGRID_VALIDATION_SECRET!' # Leave blank if you don't want to use the signature validation

And a consume:

#[\Symfony\Component\RemoteEvent\Attribute\AsRemoteEventConsumer(name: 'sendgrid')]
class SendGridConsumer implements ConsumerInterface
{
    public function consume(RemoteEvent|MailerDeliveryEvent $event): void
    {
        // your code
    }
}

Suppression Groups

Create an e-mail and add the SuppressionGroupHeader:

use Symfony\Component\Mailer\Bridge\Sendgrid\Header\SuppressionGroupHeader;
// [...]
$email = new Email();
$email->getHeaders()->add(new SuppressionGroupHeader(GROUP_ID, GROUPS_TO_DISPLAY));

where:

  • GROUP_ID is your Sendgrid suppression group ID
  • GROUPS_TO_DISPLAY_ID is an array of the Sendgrid suppression group IDs presented to the user

Scheduling

When using the API transport (with a sendgrid+api DSN), you can schedule your emails by providing a \DateTimeInterface object in a Symfony\Component\Mime\Header\DateHeader named Send-At.

$email = new \Symfony\Component\Mime\Email();
$email->getHeaders()->addDateHeader('Send-At', new \DateTimeImmutable('+3 hours'));

It will be mapped to the send_at parameter of the [POST] /mail/send API endpoint

Sponsor

This package is looking for a backer.

Help Symfony by sponsoring its development!

Resources

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.
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
ecotone/kafka
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata