mailData['to'] = $this->addDomain($mailerObject->to); //$this->mailData['to'] = $to; $this->mailData['copy'] = !empty($copy) ? $this->addDomain($mailerObject->copy) : []; $this->mailData['subject'] = $mailerObject->subject; $this->mailData['body'] = $mailerObject->body; $this->mailData['header'] = $mailerObject->header; $this->mailData['footer'] = $mailerObject->footer; $this->checkTestEnv(); $this->appName = $mailerObject->appName; $this->mailLayout = $mailerObject->mailLayout; } /** * Метод корректирует свойства отправляемого письма, если среда разработки тестовая * * @return void */ private function checkTestEnv() { //Если тестировщик аутентифицирован, берется его логин из сессии, в противном случае берется закрепленный в глобальных конфигах тестовый адрес (который разработчик указывает для своего локального тестирования сам). Можно в будущем улучшить логику с определением тестового емейла, например, передавая к api ендпоинту заголовок с тестовым емейлом, но на старте пока так // if (auth()->user()->login) { if (session()->has('_auth_login')) { $userLogin = session()->get('_auth_login'); } else { $userLogin = config('app.mail_test_addressee'); } // echo '
'; var_dump($userLogin); echo''; // $test = config('app.test_env'); // $test2 = config('app.mail_test_addressee'); // echo '
'; var_dump($test); echo''; // echo '
'; var_dump($test2); echo''; //} // $userLogin = auth()->user()->login ? auth()->user()->login : (session()->has('_auth_login') ? session()->get('_auth_login')) : config('MAIL_TEST_ADRESSEE'); //Если работаем из под тестовой среды if (config('app.test_env')) { //Информация для тестирования будет добавлена в футер сообщения. В нее включаем информацию об адресатах и копии, если бы письмо отправлялось на проде $testInfo = "На проде письмо отправится: " . implode(", ", $this->mailData['to']) . ". В копии: " . implode(", ", $this->mailData['copy']); $this->mailData['footer'] .= $testInfo; //Копию очищаем $this->cc(''); //echo '
'; var_dump(['dgavrilov@rencredit.ru']); echo''; //echo '
'; var_dump($this->addDomain([$userLogin])); echo''; $this->to($this->addDomain([$userLogin])); //$this->to(['dgavrilov@rencredit.ru']); } else { //ГАВРИЛОВ. ДОБАВЬ ДОМЕН К ЛОГИНАМ $this->to($this->mailData['to']); $this->to($this->mailData['copy']); } } /** * Хэлпер преобразует всех адресатов, добавляя им почтовый домен * * @param array $addresseesArr адресаты * @return array */ private function addDomain(array $addresseesArr): array { $domain = config('mail.mail_domain'); return array_map(function($el) use($domain) {return $el . "@" . $domain;}, $addresseesArr); } /** * Get the message envelope. */ public function envelope(): Envelope { return new Envelope( subject: $this->mailData['subject'], ); } /** * Get the message content definition. */ public function content(): Content { return new Content( // view: 'view.name', view: $this->mailLayout, ); } /** * Get the attachments for the message. * * @return array