Skip to content

Commit 28e9731

Browse files
committed
feature #53554 [Mailer] Add Resend bridge (welcoMattic)
This PR was merged into the 7.1 branch. Discussion ---------- [Mailer] Add Resend bridge | Q | A | ------------- | --- | Branch? | 7.1 | Bug fix? | no | New feature? | yes | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Issues | | License | MIT | Doc PR | symfony/symfony-docs#19432 | Recipe | symfony/recipes#1283 This PR adds a new Mailer bridge for [Resend](https://resend.com/). In addition, it handles the webhooks sent by Resend for various events (sent, delivered, delivery_delayed, bounced, clicked, opened, complained). The bridge and webhooks has been tested in a real 7.1 project (I can provide the reproducer if anyone want to test it). Thanks to `@zenorocha` and all the Resend team for this tool! NB: Docs PR will land later this week Commits ------- df72253350 Add Resend Mailer bridge
2 parents 14b251e + f26cb41 commit 28e9731

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2572,6 +2572,7 @@ private function registerMailerConfiguration(array $config, ContainerBuilder $co
25722572
MailerBridge\MailPace\Transport\MailPaceTransportFactory::class => 'mailer.transport_factory.mailpace',
25732573
MailerBridge\Mailchimp\Transport\MandrillTransportFactory::class => 'mailer.transport_factory.mailchimp',
25742574
MailerBridge\Postmark\Transport\PostmarkTransportFactory::class => 'mailer.transport_factory.postmark',
2575+
MailerBridge\Resend\Transport\ResendTransportFactory::class => 'mailer.transport_factory.resend',
25752576
MailerBridge\Scaleway\Transport\ScalewayTransportFactory::class => 'mailer.transport_factory.scaleway',
25762577
MailerBridge\Sendgrid\Transport\SendgridTransportFactory::class => 'mailer.transport_factory.sendgrid',
25772578
MailerBridge\Amazon\Transport\SesTransportFactory::class => 'mailer.transport_factory.amazon',
@@ -2591,6 +2592,7 @@ private function registerMailerConfiguration(array $config, ContainerBuilder $co
25912592
MailerBridge\Mailgun\Webhook\MailgunRequestParser::class => 'mailer.webhook.request_parser.mailgun',
25922593
MailerBridge\Mailjet\Webhook\MailjetRequestParser::class => 'mailer.webhook.request_parser.mailjet',
25932594
MailerBridge\Postmark\Webhook\PostmarkRequestParser::class => 'mailer.webhook.request_parser.postmark',
2595+
MailerBridge\Resend\Webhook\ResendRequestParser::class => 'mailer.webhook.request_parser.resend',
25942596
MailerBridge\Sendgrid\Webhook\SendgridRequestParser::class => 'mailer.webhook.request_parser.sendgrid',
25952597
];
25962598

Resources/config/mailer_transports.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
use Symfony\Component\Mailer\Bridge\Mailjet\Transport\MailjetTransportFactory;
2323
use Symfony\Component\Mailer\Bridge\MailPace\Transport\MailPaceTransportFactory;
2424
use Symfony\Component\Mailer\Bridge\Postmark\Transport\PostmarkTransportFactory;
25+
use Symfony\Component\Mailer\Bridge\Resend\Transport\ResendTransportFactory;
2526
use Symfony\Component\Mailer\Bridge\Scaleway\Transport\ScalewayTransportFactory;
2627
use Symfony\Component\Mailer\Bridge\Sendgrid\Transport\SendgridTransportFactory;
2728
use Symfony\Component\Mailer\Transport\AbstractTransportFactory;
@@ -55,6 +56,7 @@
5556
'native' => NativeTransportFactory::class,
5657
'null' => NullTransportFactory::class,
5758
'postmark' => PostmarkTransportFactory::class,
59+
'resend' => ResendTransportFactory::class,
5860
'scaleway' => ScalewayTransportFactory::class,
5961
'sendgrid' => SendgridTransportFactory::class,
6062
'sendmail' => SendmailTransportFactory::class,

Resources/config/mailer_webhook.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
use Symfony\Component\Mailer\Bridge\Mailjet\Webhook\MailjetRequestParser;
2020
use Symfony\Component\Mailer\Bridge\Postmark\RemoteEvent\PostmarkPayloadConverter;
2121
use Symfony\Component\Mailer\Bridge\Postmark\Webhook\PostmarkRequestParser;
22+
use Symfony\Component\Mailer\Bridge\Resend\RemoteEvent\ResendPayloadConverter;
23+
use Symfony\Component\Mailer\Bridge\Resend\Webhook\ResendRequestParser;
2224
use Symfony\Component\Mailer\Bridge\Sendgrid\RemoteEvent\SendgridPayloadConverter;
2325
use Symfony\Component\Mailer\Bridge\Sendgrid\Webhook\SendgridRequestParser;
2426

@@ -44,6 +46,11 @@
4446
->args([service('mailer.payload_converter.postmark')])
4547
->alias(PostmarkRequestParser::class, 'mailer.webhook.request_parser.postmark')
4648

49+
->set('mailer.payload_converter.resend', ResendPayloadConverter::class)
50+
->set('mailer.webhook.request_parser.resend', ResendRequestParser::class)
51+
->args([service('mailer.payload_converter.resend')])
52+
->alias(ResendRequestParser::class, 'mailer.webhook.request_parser.resend')
53+
4754
->set('mailer.payload_converter.sendgrid', SendgridPayloadConverter::class)
4855
->set('mailer.webhook.request_parser.sendgrid', SendgridRequestParser::class)
4956
->args([service('mailer.payload_converter.sendgrid')])

0 commit comments

Comments
 (0)