How to change mail configuration before sending a mail in the controller using Laravel?

I’m using Laravel 4, I would like to change the mail configuration (like driver/host/port/…) in the controller as I would like to save profiles in databases with different mail configuration. This is the basic send mail using configuration from config/mail.php

    function($message) use ($responsable){
        $message->to($responsable->email, $responsable->getName());

I’ve tried to put something like but it didn’t work


Thanks for your support!



You can set/change any configuration on the fly using Config::set:

Config::set('key', 'value');

So, to set/change the port in mail.php you may try this:

Config::set('mail.port', 587); // default

Note: Configuration values that are set at run-time are only set for the current request, and will not be carried over to subsequent requests. Read more.

Update: A hack for saving the config at runtime.

Leave a Reply

Your email address will not be published. Required fields are marked *