spatie/laravel-newsletter
Laravel package to manage newsletter subscriptions across providers. Supports Mailcoach, MailChimp, and MailerLite, with a unified API for subscribing/unsubscribing and list management. Includes configurable integration via config/newsletter.php.
Newsletter facade simplifies API interactions, reducing boilerplate for subscription management.NullDriver for testing) and direct API access via Newsletter::getApi().subscribed, unsubscribed) for analytics or workflows.NullDriver is useful for unit tests, but integration tests require real API credentials.drewm/mailchimp-api) may evolve independently, requiring updates.Newsletter::subscribe() on signup).lists: ['promotions', 'updates']).mailerlite/mailerlite-php) with your PHP version.Spatie\Newsletter\Contracts\NewsletterDriver.php artisan vendor:publish --tag="newsletter-config")..env with provider credentials (e.g., NEWSLETTER_API_KEY).use Spatie\Newsletter\Facades\Newsletter).UserObserver).Newsletter::getApi()->getLastError()).spatie/laravel-monitoring.drewm/mailchimp-api).composer why-not spatie/laravel-newsletter to check for breaking changes.NEWSLETTER_API_KEY).php artisan config:cache) in production.NullDriver for local testing without API calls.Newsletter::getApi()->getLastError() to debug provider-specific issues.Newsletter::hasMember()) if low latency is critical.retry helper) and fallbacks (e.g., NullDriver for degraded mode).| Scenario | Impact | Mitigation |
|---|---|---|
| Provider API outage | Subscriptions fail silently. | Implement retry logic + fallback to NullDriver. |
| Invalid API credentials | All operations fail. | Validate credentials on startup (e.g., boot method in a service provider). |
| Rate limiting | Bulk operations time out. | Use exponential backoff or queue delays. |
| Data migration errors | Subscriber data corrupted. | Backup data before switching providers. |
| Provider deprecation | Unsupported API version. | Monitor provider roadmaps; plan upgrades. |
Newsletter::subscribe() is called).How can I help you explore Laravel packages today?