Как изменить конфигурацию почты перед отправкой почты в контроллере с помощью Laravel?
Я использую Laravel 4, я хотел бы изменить конфигурацию почты (например, driver/host/port/...) в контроллере, поскольку я хотел бы сохранять профили в базах данных с другой конфигурацией почты. Это основная почтовая рассылка, использующая конфигурацию из config/mail.php
Mail::send(
'emails.responsable.password_lost',
array(),
function($message) use ($responsable){
$message->to($responsable->email, $responsable->getName());
$message->subject(Lang::get('email.password_lost'));
});
Я попытался что-то добавить, но это не сработало
$message->port('587');
Спасибо за вашу поддержку!
Жан
Ответы
Ответ 1
Вы можете установить/изменить любую конфигурацию на лету, используя Config::set
:
Config::set('key', 'value');
Итак, чтобы установить/изменить порт в mail.php
, вы можете попробовать следующее:
Config::set('mail.port', 587); // default
Примечание. Значения конфигурации, установленные во время выполнения, устанавливаются только для текущий запрос и не будет перенесен на последующие запросы. Подробнее.
Обновить: Взлом для сохранения конфигурации во время выполнения.
Ответ 2
Выбранный ответ не помог мне, мне нужно было добавить следующее для зарегистрированных изменений.
Config::set('key', 'value');
(new \Illuminate\Mail\MailServiceProvider(app()))->register();