bootConfigs($notifiable); $recepients = $notifiable->getRecepients($notification); if (count($recepients) === 0) { throw new Exception('No email recipients found'); } $mailMessage = $notification->toMail($notifiable); Mail::send( [], [], fn (Message $message) => $message ->to($recepients) ->subject($mailMessage->subject) ->html((string)$mailMessage->render()) ); } catch (Exception $e) { ray($e->getMessage()); $message = "EmailChannel error: {$e->getMessage()}. Failed to send email to:"; if (isset($recepients)) { $message .= implode(', ', $recepients); } if (isset($mailMessage)) { $message .= " with subject: {$mailMessage->subject}"; } send_internal_notification($message); throw $e; } } private function bootConfigs($notifiable): void { if (data_get($notifiable, 'use_instance_email_settings')) { $type = set_transanctional_email_settings(); if (!$type) { throw new Exception('No email settings found.'); } return; } config()->set('mail.from.address', data_get($notifiable, 'smtp_from_address', 'test@example.com')); config()->set('mail.from.name', data_get($notifiable, 'smtp_from_name', 'Test')); if (data_get($notifiable, 'resend_enabled')) { config()->set('mail.default', 'resend'); config()->set('resend.api_key', data_get($notifiable, 'resend_api_key')); } if (data_get($notifiable, 'smtp_enabled')) { config()->set('mail.default', 'smtp'); config()->set('mail.mailers.smtp', [ "transport" => "smtp", "host" => data_get($notifiable, 'smtp_host'), "port" => data_get($notifiable, 'smtp_port'), "encryption" => data_get($notifiable, 'smtp_encryption'), "username" => data_get($notifiable, 'smtp_username'), "password" => data_get($notifiable, 'smtp_password'), "timeout" => data_get($notifiable, 'smtp_timeout'), "local_domain" => null, ]); } } }