kunstmaan/swiftmailer-bundle
Legacy Symfony bundle that integrates the Swiftmailer mailer library. Largely obsolete now that Swiftmailer is abandoned and Symfony Mailer is the standard, so it suits only older projects still relying on Swiftmailer.
Architecture fit. Unchanged. This package is a Symfony bundle, not a Laravel package. v3.6.0 changes one composer constraint and adds no code: it still ships only a DependencyInjection extension, a configuration tree, and service definitions wiring a Swift_Mailer, transport, spool, and optional plugins (logger, anti-flood, redirecting) into the Symfony container. Laravel's container is PSR-11 compatible but ignores Symfony's Extension/CompilerPass conventions, Resources/config/*.yml loading, and bundles.php registration. There is still no path to composer require this into a Laravel application and have it do anything; any use means hand-porting YAML service definitions into a Laravel service provider and rewriting the package's only contribution.
The underlying mismatch is untouched: since Laravel 9 the framework's mail layer is symfony/mailer, not Swiftmailer. Allowing Symfony 6 packages does not change that — it widens a composer requirement around a library Laravel never used as its integration point.
Integration feasibility. Still effectively zero for Laravel, but the surrounding signals need one revision.
symfony/swiftmailer-bundle was deprecated and removed. v3.6.0 does not address this and cannot.@acrobat) bumping a version constraint.Read score: 0.015 versus opportunity: 8.81 exactly as before — opportunity here is a migration-demand indicator, not an adoption signal. v3.6.0 does not move either number in a way that changes the recommendation.
Technical risk. Unchanged in kind, with one addition.
(a) No CVE intake for the Swiftmailer stack; (b) TLS/STARTTLS and SMTP AUTH paths that no one will revisit as providers tighten requirements; (c) PHP deprecation drift causing silent failures in transport construction; (d) abandoned-OSS supply-chain exposure for near-zero functional benefit.
New in v3.6.0: (e) untested compatibility claims. A widened constraint asserts that this bundle works with Symfony 6, but the release notes show no test matrix, no CI, and no accompanying code change. Swiftmailer-era service definitions and container conventions were not validated against Symfony 6 in this release. The failure mode is not "won't install" but "installs and then fails at container compile or first send" — which is strictly harder to diagnose than a clean composer conflict.
Key questions.
@acrobat relative to the org? Is there a stated maintenance commitment, or is this a one-off unblock?composer.lock entry that v3.6.0 just made easier to keep?Swift_Message, Swift_Mailer, plugins), or is usage confined to container config?Stack fit. None for Laravel. Recommendation is unchanged: do not integrate; treat as a removal candidate. Target state remains symfony/mailer via Laravel's native Mail facade and a first-party transport (SES/Postmark/Mailgun/SMTP), which is already the supported path on Laravel 9+.
Migration path.
composer why kunstmaan/swiftmailer-bundle and composer why swiftmailer/swiftmailer; grep for Swift_ symbols, swiftmailer.* config keys, and bundle registration in config/bundles.php.Mail::alwaysTo() respectively).Mailable classes.Compatibility. Still API-gated, not version-gated. v3.6.0 changes the composer story for Symfony 6 and nothing about the code story for Swiftmailer→Symfony Mailer. Swift_Message → Symfony\Component\Mime\Email, setBody/addPart semantics still differ (notably multipart handling), and plugin behaviour must still be reproduced by hand. v3.6.0 is not a step toward compatibility with Laravel; it is a step toward this fork being installable in more places it should not be used.
Sequencing. Freeze any work that deepens the dependency. Order: inventory → block new usage via a CI rule or composer conflict → migrate highest-volume/lowest-complexity senders first → retire the package from the lockfile → delete the fork from internal Packagist if it is only there for you.
Two adjustments given v3.6.0:
Maintenance. Still effectively zero upstream maintenance, but no longer provably zero. There is a named contributor who has shipped a release. The distinction matters: you now have a contact path and an implicit expectation of responsiveness that did not exist when the repo appeared archived. Do not let that expectation substitute for a support agreement. Archival had one advantage — it was unambiguous. A low-activity fork invites the assumption that someone else is watching the mail path.
Support. Still no vendor, no community, no advisory pipeline. Incidents are debugged from source. Budget one engineer to own the mail path during migration; after migration, support returns to the framework and the ESP. The new release slightly improves the odds of getting a question answered and does not change the odds of getting a security fix.
Scaling. Unchanged. Mail sending is not the constraint — the spool is. A Swiftmailer memory or file spool is process-local and does not survive horizontal scaling, deploy restarts, or container recycling. In a Laravel context this should be a queue-backed send, which also provides retries and backpressure. Flag any spool usage as a correctness issue, not a performance one.
Failure modes. (1) Silent send failure after a PHP upgrade as transport construction breaks on a deprecation. (2) Auth/TLS breakage when a provider drops legacy SMTP ciphers — surfaces as intermittent 5xx or dropped connections. (3) Spool files orphaned on ephemeral filesystems, losing queued mail on deploy. (4) Deliverability drift with no maintainer patching encoding/header bugs. (5) New: container-compile or runtime failure on Symfony 6, where v3.6.0 asserts compatibility that no visible testing supports. This one is worse than a composer conflict because it fails after deploy rather than at install. (6) Lockfile archaeology — the package lingers for years because nobody can prove it is unused, and v3.6.0 makes that linger easier.
Ramp-up. Unchanged for the migration itself: a competent Laravel engineer can port a typical Swiftmailer integration in days, not weeks. The real ramp-up remains institutional — establishing that this bundle was a stopgap, that the fork is deprecated internally, and that Symfony Mailer/Laravel Mail is the sanctioned path. v3.6.0 adds one item to that communications work: a fresh release will be cited as evidence the fork is healthy. Get ahead of it with an explicit internal position — "constraint bump only, no security or transport maintenance, migration remains on the roadmap" — or the dependency reappears in the next project that hits the original constraint.
How can I help you explore Laravel packages today?