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

Mailer Laravel Package

symfony/mailer

Symfony Mailer helps you send emails via SMTP and other transports with a clean API. Build Email/TemplatedEmail messages, add attachments and headers, and integrate with Twig templates for HTML rendering. Configure transports via DSN and send reliably.

View on GitHub
Deep Wiki
Context7

Helps sending emails

Frequently asked questions about Mailer
Can I replace Laravel’s SwiftMailer with Symfony Mailer without breaking existing Mailable classes?
Yes, Symfony Mailer’s `Email` and `TemplatedEmail` classes mirror Laravel’s Mailable structure (e.g., `from()`, `to()`, `subject()`). You can gradually migrate by adding a trait or decorator to existing classes, or use a thin adapter layer to bridge Laravel’s Mail facade. No breaking changes are expected, as the APIs are compatible.
How do I configure Symfony Mailer to work with Laravel’s MAIL_* environment variables?
Symfony Mailer supports DSN configuration (e.g., `smtp://user:pass@smtp.example.com`), which aligns with Laravel’s `MAIL_HOST`, `MAIL_PORT`, and `MAIL_USERNAME` variables. Use `Transport::fromDsn(env('MAIL_MAILER').'://'.env('MAIL_HOST').':'.env('MAIL_PORT').'?authMode=login&username='.env('MAIL_USERNAME').'&password='.env('MAIL_PASSWORD'))` to map Laravel’s config to Symfony’s DSN format.
Does Symfony Mailer support Laravel’s queue system for delayed emails?
Symfony Mailer itself doesn’t integrate directly with Laravel’s queue system, but you can extend Laravel’s `Mail::to()->queue()` by creating a custom queue worker that processes Symfony’s `Email` objects. Alternatively, use Symfony’s `RoundRobinTransport` for load balancing across multiple transports in a queued environment.
What transports does Symfony Mailer support, and how do I switch from SMTP to SendGrid in Laravel?
Symfony Mailer supports 10+ transports, including SMTP, SendGrid, Mailgun, AWS SES, and more. To switch from SMTP to SendGrid in Laravel, update your DSN in `config/mail.php` to `sendgrid://api_key@default` and ensure your `Mail` facade uses a custom transport adapter wrapping Symfony’s `Transport` class.
Can I use Blade templates with Symfony Mailer, or do I need to switch to Twig?
Symfony Mailer natively supports Twig templates via `TemplatedEmail`, but you can still use Blade by rendering it to a string first and passing it to the `html()` method of `Email`. For dynamic content, Twig integration is recommended, as it reduces boilerplate and enables template inheritance.
How do I log failed emails or implement retries with Symfony Mailer in Laravel?
Symfony Mailer includes a `MessageLoggerListener` for logging failed emails, and you can extend it to add custom logic like retries. In Laravel, register the listener in your `Mailer` instance’s event dispatcher, then hook into Laravel’s `failed` event in `EventServiceProvider` to handle failures globally.
Is Symfony Mailer compatible with Laravel 10/11, and what PHP version is required?
Symfony Mailer v8.x is fully compatible with Laravel 10/11 and requires PHP 8.1+. The component is lightweight (~5MB) with no dependency conflicts, making it a drop-in replacement or supplement to Laravel’s default SwiftMailer stack.
How do I test Symfony Mailer in Laravel, and should I use Symfony’s MailerTestCase?
You can use Symfony’s `MailerTestCase` for unit testing, but Laravel’s existing `Mailable` testing helpers (e.g., `Mailable::fake()`) can also work with a custom adapter. For integration tests, mock the `Transport` interface to simulate email sending without hitting a real SMTP server.
What are the performance implications of switching from SwiftMailer to Symfony Mailer in Laravel?
Symfony Mailer introduces negligible overhead (<5%) compared to SwiftMailer for typical use cases. Benchmarks show similar performance for SMTP and API-based transports, with no significant impact on Laravel’s queue or event systems when properly integrated.
Are there alternatives to Symfony Mailer for Laravel, and why should I choose it?
Alternatives include Laravel’s built-in SwiftMailer or packages like `spatie/laravel-mail`. Symfony Mailer stands out for its transport abstraction (10+ providers), event-driven architecture, and native Twig support, making it ideal for apps requiring scalability, reliability, and multi-transport flexibility.
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.
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope
anil/file-picker
broqit/fields-ai