stampie/stampie-bundle
Symfony bundle that integrates the Stampie email library, enabling transactional email delivery through multiple API-based mail providers. It provides framework-native configuration and services for quickly connecting your app to providers such as Mailgun, SendGrid, and Postmark.
Architecture fit. stampie-bundle is a Symfony bundle, not a Laravel package. It wires the stampie/stampie library (a provider-agnostic transactional-email abstraction over SendGrid, Mailgun, Postmark, Mandrill, etc.) into the Symfony service container via a stampie.yaml config tree and an ApiFactory/Mailer service. If the target application is Laravel, there is a real impedance mismatch: no package auto-discovery, no service provider or facade, different config-loading semantics, and no bundles.php registration path. The reusable asset in that case is the underlying stampie/stampie library, not this bundle.
Integration feasibility. v2.1.1 is a single, surgical fix restoring compatibility with Symfony 5 (PR #50, authored by stof — a long-standing Symfony core contributor). No API surface changes, no config schema changes. Integration is a Composer constraint bump (^2.1.0 → ^2.1.1). The signal worth noting is that Symfony 5 support was broken at v2.1.0 and required a community patch — useful evidence about maintainer bandwidth and CI coverage.
Technical risk. Low for the patch itself. Moderate for the package as a whole: thin release cadence, effectively single-maintainer, hard coupling to Symfony major versions, and no stated support for Symfony 6/7 in this release line. Secondary risk is strategic — since Symfony Mailer and Laravel's own mail transports matured, the abstraction-layer value of Stampie has eroded for single-provider use cases; it still earns its place where multi-provider failover or provider-swapping without code changes is a requirement.
Key questions.
stampie/stampie directly in a service provider, and who owns that wrapper?Mailer service?Stack fit. Symfony 5.x: the bundle is now usable as designed — register in config/bundles.php, configure the API and provider under config/packages/stampie.yaml, inject Stampie\Mailer. Laravel: do not install the bundle. Either depend on stampie/stampie directly behind a small custom service provider, or use Laravel's native Mail with the matching transport — prefer the latter unless multi-provider failover is a hard requirement.
Migration path. Composer constraint bump only. Pin ^2.1.1 explicitly; remaining on 2.1.0 leaves the Symfony 5 incompatibility in place. No code, config, or data migration is implied by the changelog.
Compatibility. Transitive constraints follow Symfony 5 (PHP 7.2.5+). Verify our runtime is on a supported PHP branch and confirm the exact Symfony minor (5.4 LTS preferred over earlier 5.x). Flag explicitly that Symfony 6/7 is unverified for this release line — if our platform roadmap includes a Symfony 6+ upgrade, treat this package as a blocker to be resolved now rather than during the upgrade.
Sequencing.
stampie/stampie wrapper, or fall back to native mail.^2.1.1, run container compile (cache:clear / debug:container) to catch DI or config-schema breaks early.Maintenance. Patch-level; routine dependency hygiene. Real maintenance load is tracking an upstream with sparse releases — budget a recurring quarterly check rather than assuming passive stability.
Support. Community-only, no vendor SLA. Escalation is GitHub issues; the presence of a core-contributor patch is reassuring but does not constitute a support commitment. Internal ownership should be named explicitly, ideally the team that owns outbound email.
Scaling. The bundle is a thin DI/config layer — negligible runtime overhead. Throughput is governed entirely by the provider API (rate limits, quotas, latency). Scale planning belongs at the provider contract level, not here.
Failure modes.
Ramp-up. Low. The public surface is small (one Mailer service, one factory, one config tree). An engineer comfortable with Symfony DI needs roughly half a day to be productive; a Laravel-only engineer needs longer, because the cost is learning Symfony bundle conventions rather than this package's API — another argument for not bringing the bundle into a Laravel codebase.
How can I help you explore Laravel packages today?