#laravel
Вопрос:
Я использую laravel 8.
Мое приложение отправляет электронные письма. В процессе разработки я настроил свой email.php вот так (выдержка) :
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
'to' => [
'address' => 'xxxxx.yyyy@domain.com',
'name' => env('APP_NAME', 'Example'),
],
Вот так, когда я нахожусь в разработке , все электронные письма отправляются на xxxx.yyyy@domain.com. Это очень полезно, НО я должен помнить, что перед каждым развертыванием нужно комментировать эту запись «кому».
Мой вопрос : как написать что-то элегантное в этом конфигурационном файле, чтобы разрешить отправку на реальную электронную почту, когда среда является рабочей, в противном случае отправку необходимо выполнить в xxxx.yyyy@domain.com ?
Я знаю, что могу отправить электронное письмо в файл журнала. Но не полезно видеть настоящее электронное письмо. Я ищу другое решение.
Ответ №1:
Просто возьмите env
поле и постройте на нем свою логику. Конечно, ваша производственная среда должна работать на правильном производстве env
.
'address' => env('APP_ENV') === 'PRODUCTION' ? 'real.email@domain.com' : 'fake.email@domain.com'
Комментарии:
1. Альтернативой этому было бы сохранение .env в отдельных файлах (например,. env.dev и .env.prod) и использование символических ссылок на .env. Таким образом, вы можете вносить изменения в одном месте, не имея дела с различными файлами конфигурации.