mardi 6 mars 2018

Change SMTP user according to the user in Laravel 5

I want to assign different SMTP hosts to different authenticated users so that the privileged users can send mails faster through a dedicated SMTP server.

I can change the host in the service provider like:

class AppServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->extend('swift.transport', function ($transportManager, $app) {
           $app->make('config')->set('mail.host', 'just.testing.com');
           return new TransportManager($app);
        });
    }
}

However since I need the authenticated user I created a listener listening to "Authenticated" event and moved the code there like:

class ChangeSmtpServer
{
    public function handle($event)
    {
        app()->extend('swift.transport', function ($transportManager, $app) use ($event) {
            $app->make('config')->set('mail.host', $event->user->smtp_server);
            return new TransportManager($app);
        });
    }
}

So inside the service provider I can overwrite the setting but not inside the listener.

Any ideas why?



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2D5eQga
via IFTTT

Aucun commentaire:

Enregistrer un commentaire