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
Craft Mailcoach

Craft Mailcoach Laravel Package

spatie/craft-mailcoach

Mailcoach adapter plugin for Craft CMS 5+. Install via the Plugin Store or Composer to add Mailcoach integration to your Craft project. Requires PHP 8.2 or later.

View on GitHub
Deep Wiki
Context7

Mailcoach mailer adapter

Frequently asked questions about Craft Mailcoach
How do I integrate Spatie Mailcoach with Craft CMS 5 for transactional emails like password resets?
Install via Composer with `composer require spatie/craft-mailcoach`, then run `./craft plugin/install mailcoach`. Configure your Mailcoach API key in `config/general.php` under the `mailer` component and set it as the default mailer in Craft’s Control Panel under *Settings > System > Mail*. Craft will now route emails through Mailcoach.
Does this package support Craft CMS 4.x or older PHP versions?
No, this package strictly requires **Craft CMS 5.0+** and **PHP 8.2+**. If you’re on Craft 4.x or PHP 8.1, you’ll need to upgrade first. Check the [Craft CMS docs](https://craftcms.com/docs) for migration guidance.
Can I use this alongside other mailers like SparkPost or SendGrid?
Yes, the adapter follows Craft’s mailer interface, so you can configure it as a fallback or primary mailer. Use Craft’s *Settings > System > Mail* to switch between providers dynamically. For redundancy, set a secondary mailer in your `config/general.php` under the `mailer` component.
How do I handle Mailcoach API failures or rate limits in production?
The package relies on Mailcoach’s API, so monitor their [status page](https://mailcoach.app/status) for outages. For rate limits, implement retry logic in your Craft templates or controllers using `Yii::$app->mailer->compose()` with error handling. Log failures via Craft’s `craft.log` for debugging.
Is there a way to test email delivery before going live?
Yes, use Craft’s CLI to send test emails: `./craft send-test-email`. Verify delivery by checking your inbox and inspecting headers for Mailcoach-specific tags. For automated testing, mock the mailer in PHPUnit using Craft’s `MailerInterface` and `MailerTrait`.
Will this break existing Craft plugins that send emails?
No, as long as plugins use Craft’s built-in mailer system (e.g., `Craft::$app->mailer`), they’ll automatically route through Mailcoach. Avoid hardcoding `Yii::$app->mailer` in custom code—use dependency injection or Craft’s service layer for flexibility.
How do I secure the Mailcoach API key in production?
Store the API key in your environment variables (e.g., `.env`) and reference it in `config/general.php` like this: `'mailcoachApiKey' => getenv('MAILCOACH_API_KEY')`. Never hardcode keys in version-controlled files. Use Craft’s `config/general.php` or a secrets manager for added security.
Are there alternatives to Mailcoach for Craft CMS 5?
Yes, consider **Postmark**, **AWS SES**, or **SendGrid** for transactional emails. For marketing-focused workflows, **Mailcoach** integrates tightly with Craft’s content management. Compare features like deliverability, pricing, and API stability before choosing.
Can I customize email templates or dynamic content beyond Mailcoach’s defaults?
Yes, use Craft’s Twig templates to override Mailcoach’s default emails. Place custom templates in `templates/emails/` and reference them in your mailer config. For dynamic content, pass variables via `Yii::$app->mailer->compose()->setTo(['user@example.com'])->setSubject('Hello')->setHtmlBody($yourTwigTemplate->render())`.
How does this package handle GDPR compliance for email storage/logging?
Mailcoach handles email content storage per their [privacy policy](https://mailcoach.app/privacy). Ensure your Craft project also complies with GDPR by anonymizing user data in logs and providing clear unsubscribe links. Use Craft’s `User` model methods like `sendPasswordResetEmail()` with Mailcoach’s built-in compliance features.
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