microweber-packages / microweber-mail-sender
Standalone Laravel package for sending email via configurable transports (SMTP, PHP mail, Gmail, cPanel, Plesk). Reusable in any Laravel app. Extracted from Microweber CMS MailSender.
Package info
github.com/microweber-packages/microweber-mail-sender
pkg:composer/microweber-packages/microweber-mail-sender
Requires
- php: ^8.2
- illuminate/config: ^10.0|^11.0|^12.0|^13.0
- illuminate/http: ^10.0|^11.0|^12.0|^13.0
- illuminate/mail: ^10.0|^11.0|^12.0|^13.0
- illuminate/routing: ^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- illuminate/view: ^10.0|^11.0|^12.0|^13.0
- microweber-packages/microweber-package: *
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- filament/filament: ~5.0
- larastan/larastan: ^3.0
- livewire/livewire: ^3.0|^4.0
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
Suggests
- filament/filament: Required for the Filament admin settings page
Provides
None
Conflicts
None
Replaces
- microweber-packages/mail-sender: *
This package is auto-updated.
Last update: 2026-11-03 17:07:00 UTC
README
Standalone Laravel package for sending transactional email via configurable
transports (SMTP, PHP mail(), Gmail, cPanel, Plesk). Extracted from the
Microweber CMS MailSender so it can be reused in any Laravel application.
Install
composer require microweber-packages/microweber-mail-sender
Register the service provider (or rely on CoreServiceProvider / auto-discovery):
$app->register(\MicroweberPackages\MailSender\MailSenderServiceProvider::class);
Publish config and views:
php artisan vendor:publish --tag=mail-sender-config php artisan vendor:publish --tag=mail-sender-views
Usage
Config is applied once on boot from config/mail-sender.php (or env vars).
Do not call a per-instance configMailDriver() — that API is removed.
use MicroweberPackages\MailSender\Facades\MailSender; // or use MicroweberPackages\MailSender\Services\MailSenderService; $ok = MailSender::send( to: 'user@example.com', subject: 'Hello', message: '<p>Welcome!</p>', ); // Fluent setters (compatible with the old CMS API) $sender = app(MailSenderService::class); $sender->setEmailTo('user@example.com') ->setEmailSubject('Hello') ->setEmailMessage('<p>Welcome!</p>') ->setEmailFrom('noreply@example.com') ->setEmailFromName('Example') ->send();
Config
See config/mail-sender.php. Key options:
| Key | Description |
|---|---|
transport |
smtp, php, gmail, cpanel, plesk, config, log, array |
from.address / from.name |
Global From header |
smtp.* |
Host, port, username, password, encryption |
hostname |
Optional [hostname] subject prefix |
view |
Blade view for the simple HTML body |
Filament
$panel->plugin(\MicroweberPackages\MailSender\Filament\MailSenderPlugin::make());
Tests
composer test # or from monorepo root: php artisan test --testsuite=MicroweberMailSender php artisan dusk --filter=MailSender
PHPStan
composer analyse -- packages/microweber-mail-sender/src # package-local: cd packages/microweber-mail-sender && composer analyse