hnsxxscyx/laravel-multi-mail-driver

Make Laravel support multiple mail drivers.

v1.0 2022-10-30 04:32 UTC

This package is auto-updated.

Last update: 2024-04-29 05:00:03 UTC


README

The package make Laravel can use multiple mail driver and sending mail via specific mailer.

Support

Support Laravel 5.* - Laravel 6.x. Laravel ^7 has officially implemented this behavior.

Usage

Same as laravel ^7.x. Need use package namespace.

use Hnsxxscyx\MultipleMailerDriver\Facades\Mail;

Mail::mailer('mailgun')
    ->to($request->user())
    ->send(new OrderShipped($order));

Install

composer install hnsxxscyx/laravel-multi-mail-driver;

Config

Register in AppServiceProvider:

use Hnsxxscyx\MultipleMailerDriver\MailManager;

public function register()
{
    $this->app->singleton('mail.manager', function ($app) {
        return (new MailManager($app))->setTransportManager($app['swift.transport']);
    });

    $this->app->bind('mailer', function ($app) {
        return $app->make('mail.manager')->mailer('mailgun');
    });
}

Change aliases Mail in config/app.php:

// 'Mail' => Illuminate\Support\Facades\Mail::class,
'Mail' => Hnsxxscyx\MultipleMailerDriver\Facades\Mail;::class,

TODO

  • support notification
  • support multiple smtp service