view->make('admin.settings.mail', [ 'disabled' => $this->config->get('mail.default') !== 'smtp', ]); } /** * Handle request to update SMTP mail settings. * * @throws DisplayException * @throws \Pterodactyl\Exceptions\Model\DataValidationException * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException */ public function update(MailSettingsFormRequest $request): Response { if ($this->config->get('mail.default') !== 'smtp') { throw new DisplayException('This feature is only available if SMTP is the selected email driver for the Panel.'); } $values = $request->normalize(); if (array_get($values, 'mail:mailers:smtp:password') === '!e') { $values['mail:mailers:smtp:password'] = ''; } foreach ($values as $key => $value) { if (in_array($key, SettingsServiceProvider::getEncryptedKeys()) && !empty($value)) { $value = $this->encrypter->encrypt($value); } $this->settings->set('settings::' . $key, $value); } $this->kernel->call('queue:restart'); return response('', 204); } /** * Submit a request to send a test mail message. */ public function test(Request $request): Response { try { Notification::route('mail', $request->user()->email) ->notify(new MailTested($request->user())); } catch (Exception $exception) { return response($exception->getMessage(), 500); } return response('', 204); } }