symfony/sendgrid-mailer
Symfony mailer transport for SendGrid. Send emails via SendGrid API using Symfony Mailer, with support for templates, attachments, and robust delivery options. Ideal for integrating SendGrid into Symfony apps with a familiar mailer interface.
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 KeyREGION is Sendgrid selected region (default to global)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
}
}
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 IDGROUPS_TO_DISPLAY_ID is an array of the Sendgrid suppression group IDs presented to the userWhen 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
This package is looking for a backer.
Help Symfony by sponsoring its development!
How can I help you explore Laravel packages today?