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
Laravel Email Provider

Laravel Email Provider Laravel Package

bonnier/laravel-email-provider

Laravel package to fetch email template translations from a Translation/Email Manager. Provides BonnierMail::get($key, $replace, $locale) and an artisan command (bonnier:translation:get) to sync translations, configured via EMAIL_MANAGER_URL and service ID.

View on GitHub
Deep Wiki
Context7

Laravel package to implement translations from Email Manager

Frequently asked questions about Laravel Email Provider
How do I fetch an email template with dynamic replacements and a specific locale using this package?
Use the `BonnierMail::get($key, $replace, $locale)` facade method. Pass the email template key, an associative array of replacements (e.g., `['name' => 'John']`), and the locale (e.g., `'en'`). The package will fetch the template from the Email Manager, apply replacements, and return the localized content.
Is this package compatible with Laravel 8/9/10, or only older versions like Laravel 5.x?
The package was last updated in 2018 and is designed for Laravel 5.x. While it may work with newer Laravel versions, you’ll need to test compatibility manually, especially for dependency conflicts (e.g., Guzzle <6.0, Carbon v1) or changes in Laravel’s service container or contracts. Consider forking or updating dependencies if needed.
What happens if the Email Manager API is unavailable or returns an error?
The package does not include built-in fallback mechanisms for failed API calls. If the Email Manager is down, your application will likely throw an exception or return undefined content. You’ll need to implement custom error handling (e.g., retry logic, cached fallbacks) in your application code to ensure graceful degradation.
Can I use this package alongside Laravel’s native localization (e.g., `lang/` files) or does it replace them?
This package augments Laravel’s localization system by fetching email templates from an external source. You can still use `lang/` files for other translations, but for emails managed by the Email Manager, this package will override or supplement them. Ensure your routing logic (e.g., which emails use which system) is clearly documented to avoid conflicts.
How do I sync all translations from the Email Manager to my Laravel app?
Run the Artisan command `php artisan bonnier:translation:get` to fetch all translations from the Email Manager. This populates your app’s cache or storage (depending on implementation) with the latest templates. Check the package’s configuration to confirm where translations are stored and how often they’re refreshed.
What are the risks of using this package in production, given it was last updated in 2018?
The primary risks include compatibility issues with modern PHP (7.4+) or Laravel (8+), outdated dependencies (e.g., security vulnerabilities in Guzzle <6.0), and lack of maintenance. Test thoroughly in staging, monitor for deprecation warnings, and consider implementing a fallback plan (e.g., cached templates or manual overrides) if the package fails.
Does this package support caching translations to reduce API calls to the Email Manager?
The package does not explicitly document caching behavior, so translations may be fetched on-demand with each request. To optimize performance, implement your own caching layer (e.g., Laravel’s cache system) around `BonnierMail::get()` calls, storing responses by template key and locale with a reasonable TTL (e.g., 1 hour).
What alternatives exist for fetching email templates from an external system in Laravel?
Consider packages like `spatie/laravel-translatable` for dynamic translations or custom solutions using Laravel’s HTTP client (e.g., `Guzzle`) to fetch templates from a REST API. For headless CMS integrations, packages like `spatie/laravel-medialibrary` or `tightenco/ziggy` (for API-driven content) might offer more modern, maintained alternatives.
How do I configure the Email Manager’s API credentials and endpoint in Laravel?
Set the `EMAIL_MANAGER_URL` and `EMAIL_MANAGER_SERVICE_ID` in your `.env` file, then define these in `config/services.php` under the `email_manager` key. The package uses these values to construct API requests. Ensure the Email Manager’s API expects these parameters and handles authentication (e.g., API keys, OAuth) as required.
Can I use this package to manage email templates for a multi-tenant Laravel application?
The package does not natively support multi-tenancy, but you can extend it by passing tenant-specific `service_id` or locale overrides via `BonnierMail::get()`. For example, use middleware to set the `service_id` dynamically based on the current tenant. Alternatively, fetch all translations per tenant during the sync process (`bonnier:translation:get`) and filter them in your application logic.
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.
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
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