Невозможно использовать динамические почтовые конфигурации в Laravel

#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