Как настроить mail.php отправлять электронные письма на реальный адрес в производстве, а не в разработке?

#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. Таким образом, вы можете вносить изменения в одном месте, не имея дела с различными файлами конфигурации.