#php #laravel #laravel-mail
#php #laravel #laravel-mail
Вопрос:
Я хочу переопределить настройки почты по умолчанию в config/mail.php или .env, который Laravel использует по умолчанию. Я настраиваю динамические конфигурации (поступающие из БД), но электронная почта при отправке по-прежнему отправляется с адреса «от», установленного в config/mail.php или .env.
Есть предложения по приведенным выше словам??
Вот часть кода, которую я использую:
$mailConfigs = [
'driver' => 'smtp',
'port' => $dbSettings->smtp_port,
'host' => $dbSettings->smtp_host,
'encryption' => $dbSettings->smtp_encryption,
'username' => $dbSettings->smtp_email,
'password' => $dbSettings->smtp_password,
'sendmail' => '/usr/sbin/sendmail -bs',
'from' => [
'address' => $dbSettings->smtp_email,
'name' => 'XXXXX'
],
];
Config::set('mail', $mailConfigs);
// print_r(Config::get('mail'));
// Config here are reflected correctly if printed but when email is sent, it again uses the "from" address which is setup in .env and totally ignores the one setup above.
$res = Mail::send([], $data, function ($message) use($mailConfigs)
{
// email body, etc...
});
Комментарии:
1. Если вы настраиваете
$mailConfigs
вручную, он правильно отправляет почту?2. Я пытался, но он по-прежнему выбирает конфигурации из .env
3. выполнить
php artisan config:cache