- How do I install rich-id/mailer-bundle with Composer?
- Install it with composer require rich-id/mailer-bundle and then follow the bundle's registration steps, which typically means enabling it in your kernel or letting Symfony Flex do it. Because the package overview describes a Symfony bundle rather than a Laravel package, confirm the PHP and framework constraints in its composer.json before committing. Laravel users should not assume service provider auto-discovery works without checking the source.
- Does rich-id/mailer-bundle support Laravel?
- The package is documented as a Symfony-native bundle that integrates with Symfony Mailer, and no Laravel service provider or facade is described in the overview. Laravel already ships its own Mail facade built on Symfony Mailer, so most Laravel teams are better served by the framework's native mailer or a Laravel-specific transport package. Verify the composer.json requirements and available integration classes before adding this bundle to a Laravel application.
- What changed in rich-id/mailer-bundle v0.9.0?
- Version 0.9.0 changes the wire contract: the request payload moves from a custom bodyAsString header into the actual HTTP body. That is a transport-level change on the request-construction path, not a cosmetic API rename. Any endpoint that previously read the header form will observe different requests after upgrading.
- Is the v0.9.0 bodyAsString to HTTP body change a breaking change?
- Yes, behaviorally it is breaking even though 0.x semver rules may allow a minor bump. Every consumer that reads bodyAsString server-side, or that computes a signature over headers, will fail once the payload moves into the body. The change also shifts size limits, since headers are commonly capped at 8 to 16 KB by proxies while bodies are bounded by post_max_size and gateway limits, so previously working payloads can fail differently.
- How do I configure SMTP, sendmail, or custom mail transports?
- The bundle provides flexible transports for SMTP, sendmail, and custom providers, configured through the bundle configuration rather than hard-coded in services. Check whether the release you are installing adds new configuration options you need to republish or merge after upgrading. Keep transport credentials in environment variables and avoid committing them to the config file.
- How can I test outgoing emails with rich-id/mailer-bundle?
- The package advertises test-friendly abstractions for asserting outgoing mail, so you can verify messages are composed and dispatched without hitting a real transport. Pair that with a null or in-memory transport in your test environment and assert on the composed message rather than network calls. For the v0.9.0 body change, add a request-level test that captures the outgoing HTTP request and asserts the payload is in the body.
- Which PHP and framework versions does rich-id/mailer-bundle support?
- The supported ranges are not stated in the overview or the release note, so read the require and require-dev blocks in composer.json instead of inferring them. There is no published artifact data confirming the supported PHP, Symfony, or Laravel versions. Pin a constraint in composer.json that matches the versions your application actually runs.
- How do I migrate safely from v0.8.x to v0.9.0?
- Treat this as a contract migration rather than a patch: pin your current version first so the upgrade is deliberate, then read the diff instead of relying on the one-line release note. Stand up a staging environment with a request-capture proxy and diff outgoing requests at v0.8.x versus v0.9.0 for each HTTP method your application uses. Upgrade the receiving service first if it can accept both header and body forms, and roll out to a canary tenant before a full release.
- Will the body change break request signing or HMAC middleware?
- If the package or your own middleware signs requests, the signature scope matters more than ever. Header-based signatures will not cover a payload moved into the body, and any server-side verification that recomputes over headers will reject the request. Confirm whether the package signs requests and whether the signature covers headers, body, or both before upgrading.
- What are the alternatives to rich-id/mailer-bundle for transactional email?
- In Laravel, the built-in Mail facade with Symfony Mailer drivers covers SMTP, Mailgun, Postmark, SES, and similar providers without an extra bundle. Symfony applications can use Symfony Mailer directly with a small service layer of their own. Choose a Laravel-specific mail package if you want framework-native facades, queue integration, and Markdown mailables out of the box.