roots/acorn-mail
Bring Laravel’s Mail system to WordPress via Acorn. Send email with familiar Mailables, mailers, and Blade templates, configure SMTP and other transports, and use Laravel-style mail APIs inside your Acorn-powered theme or plugin.
Scope note: No prior assessment exists, so this establishes the baseline for the package at v2.0.0. The release notes describe a mail-configuration integration for the Roots/Acorn ecosystem (Sage/Bedrock/Trellis), sitting between WordPress and Laravel's mail subsystem. Package identity, ownership, and release cadence should be confirmed before this baseline is treated as authoritative.
Architecture fit. The package is a thin configuration/integration layer over Laravel's mail transport, hosted inside the Acorn service-provider lifecycle. That is a good architectural fit — it is replaceable, small in surface area, and does not own application logic. The tradeoff is that it inherits Laravel's config contract wholesale: v2.0.0 is hard-coupled to Acorn v6 → Laravel v13 → PHP >=8.3. Effective blast radius is therefore "any site whose mail breaks," not "any site that uses the package."
Integration feasibility. Feasible but multi-step. Three breaking axes land simultaneously: framework major (Acorn v6), language floor (PHP 8.3), and an environment-variable rename (MAIL_ENCRYPTION → MAIL_SCHEME). The highest-friction item is not the rename itself but the published-config caveat: any project that ran vendor:publish for config/mail.php retains a local copy keyed on encryption, so the upstream fix in this release is silently inert. That turns a routine dependency bump into a config-drift audit across every project.
Technical risk.
v1.0.4. If any project uses a permissive constraint (*, ^1 || ^2), Composer may resolve into v2.0.0 on an incompatible stack and fail hard, or worse, partially.config/mail.php, and how do we detect that automatically?.env — Trellis vault, CI secrets, host-level config, container envs?MAIL_SCHEME read by Acorn v6 natively, or does the package carry the shim? Determines whether the package is optional or required post-upgrade.v1.0.4 line?Stack fit. Standard Composer dependency in a Roots project; configuration flows through .env (Bedrock) and, where applicable, Trellis-provisioned environment templates. No runtime service, no datastore, no network surface beyond the mail transport it configures — low coupling, cleanly removable if we later choose to inline the config.
Migration path.
config/mail.php (a git ls-files config/mail.php-style check per repo).roots/acorn version — this must happen in the same change as the version bump, not after..env, .env.example, CI secrets, Trellis vault entries, deployment manifests. Keep MAIL_ENCRYPTION alongside MAIL_SCHEME only as a short-lived transition aid, never as the steady state.^2.0 for upgraded projects, exact 1.0.4 for projects remaining on Acorn ≤5. Avoid open-ended constraints.Compatibility. Two supported tracks exist after this release — v2.0.0 (Acorn v6 / Laravel 13 / PHP 8.3+) and v1.0.4 (Acorn ≤5). Treat that as a deliberate fork and document it internally; do not let the two tracks mix within one codebase or one shared config template. PHP 8.3 must be confirmed available in local dev (DDEV/Valet), CI images, and production before the bump — the Composer failure otherwise is immediate and unambiguous, which is the good case.
Sequencing (recommended).
^2.0 → env rename → config reconcile.MAIL_ENCRYPTION from all secret stores.Maintenance. Ongoing cost is low — one dependency, no infrastructure. The material cost is the one-time, fleet-wide env rename plus the permanent obligation to track Laravel's mail-config contract, which has now changed once and should be expected to change again. Budget recurring review effort rather than one-off.
Support. Single-maintainer, small-community project: responsive on targeted bug fixes (this release is a good signal), but not a vendor with an SLA. Mitigation is standard: pin versions, vendor or mirror if the package becomes load-bearing, and keep the config it generates small enough to inline as a fallback. The v1.0.4 branch is likely unmaintained going forward — sites parked there accrue silent risk.
Scaling. Runtime impact is negligible; this does not scale with traffic. The scaling concern is organizational: cost scales with sites × environments × secret stores, not with request volume. A 20-site fleet with 3 environments each is 60 verification points on the env rename, and manual execution will miss some.
Failure modes (ordered by likelihood × impact).
MAIL_ENCRYPTION renamed in .env but the deployed config still expects encryption, or vice versa → no error, no mail on 465. Highest impact; detect with an active send probe, not logs.config/mail.php overrides the fix, so the upgrade appears successful while the original bug persists. Detectable only by file audit or a live send test.Ramp-up. Low for engineers — the change is an env rename plus a Composer bump, both familiar. The real ramp-up is procedural: whoever owns environments and secrets needs to understand why the rename cannot be skipped and why a green build does not prove mail works. One runbook page plus a mandatory post-deploy send test is sufficient; without the send test, expect at least one silent-downtime incident.
How can I help you explore Laravel packages today?