diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 522683efa..14a2950af 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -54,7 +54,7 @@ class Controller extends BaseController 'email' => Str::lower($arrayOfRequest['email']), ]); $type = set_transanctional_email_settings(); - if (! $type) { + if (blank($type)) { return response()->json(['message' => 'Transactional emails are not active'], 400); } $request->validate([Fortify::email() => 'required|email']); diff --git a/app/Livewire/Help.php b/app/Livewire/Help.php index f51527fbe..913710588 100644 --- a/app/Livewire/Help.php +++ b/app/Livewire/Help.php @@ -36,7 +36,7 @@ class Help extends Component $type = set_transanctional_email_settings($settings); // Sending feedback through Cloud API - if ($type === false) { + if (blank($type)) { $url = 'https://app.coolify.io/api/feedback'; Http::post($url, [ 'content' => 'User: `'.auth()->user()?->email.'` with subject: `'.$this->subject.'` has the following problem: `'.$this->description.'`', diff --git a/app/Notifications/Channels/EmailChannel.php b/app/Notifications/Channels/EmailChannel.php index 98536d346..b8589cd8e 100644 --- a/app/Notifications/Channels/EmailChannel.php +++ b/app/Notifications/Channels/EmailChannel.php @@ -50,11 +50,9 @@ class EmailChannel if ($emailSettings->use_instance_email_settings) { $type = set_transanctional_email_settings(); - if (! $type) { + if (blank($type)) { throw new Exception('No email settings found.'); } - config()->set('mail.default', $type); - return; } diff --git a/app/Notifications/Channels/TransactionalEmailChannel.php b/app/Notifications/Channels/TransactionalEmailChannel.php index 761780231..114d1f6ed 100644 --- a/app/Notifications/Channels/TransactionalEmailChannel.php +++ b/app/Notifications/Channels/TransactionalEmailChannel.php @@ -35,7 +35,7 @@ class TransactionalEmailChannel private function bootConfigs(): void { $type = set_transanctional_email_settings(); - if (! $type) { + if (blank($type)) { throw new Exception('No email settings found.'); } } diff --git a/app/Notifications/TransactionalEmails/ResetPassword.php b/app/Notifications/TransactionalEmails/ResetPassword.php index 3938a8da7..4593ddb0d 100644 --- a/app/Notifications/TransactionalEmails/ResetPassword.php +++ b/app/Notifications/TransactionalEmails/ResetPassword.php @@ -3,6 +3,7 @@ namespace App\Notifications\TransactionalEmails; use App\Models\InstanceSettings; +use Exception; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; @@ -35,8 +36,8 @@ class ResetPassword extends Notification public function via($notifiable) { $type = set_transanctional_email_settings(); - if (! $type) { - throw new \Exception('No email settings found.'); + if (blank($type)) { + throw new Exception('No email settings found.'); } return ['mail']; diff --git a/bootstrap/helpers/notifications.php b/bootstrap/helpers/notifications.php index 46f0ebca7..b0345df7e 100644 --- a/bootstrap/helpers/notifications.php +++ b/bootstrap/helpers/notifications.php @@ -28,7 +28,7 @@ function send_user_an_email(MailMessage $mail, string $email, ?string $cc = null { $settings = instanceSettings(); $type = set_transanctional_email_settings($settings); - if (! $type) { + if (blank($type)) { throw new Exception('No email settings found.'); } if ($cc) { @@ -54,15 +54,19 @@ function send_user_an_email(MailMessage $mail, string $email, ?string $cc = null } } -function set_transanctional_email_settings(?InstanceSettings $settings = null): ?string // +function set_transanctional_email_settings(?InstanceSettings $settings = null): ?string // returns null|resend|smtp and defaults to array based on mail.php config { if (! $settings) { $settings = instanceSettings(); } - config()->set('mail.from.address', data_get($settings, 'smtp_from_address')); - config()->set('mail.from.name', data_get($settings, 'smtp_from_name')); + if (! data_get($settings, 'smtp_enabled') && ! data_get($settings, 'resend_enabled')) { + return null; + } + if (data_get($settings, 'resend_enabled')) { config()->set('mail.default', 'resend'); + config()->set('mail.from.address', data_get($settings, 'smtp_from_address')); + config()->set('mail.from.name', data_get($settings, 'smtp_from_name')); config()->set('resend.api_key', data_get($settings, 'resend_api_key')); return 'resend'; @@ -76,6 +80,8 @@ function set_transanctional_email_settings(?InstanceSettings $settings = null): }; if (data_get($settings, 'smtp_enabled')) { + config()->set('mail.from.address', data_get($settings, 'smtp_from_address')); + config()->set('mail.from.name', data_get($settings, 'smtp_from_name')); config()->set('mail.default', 'smtp'); config()->set('mail.mailers.smtp', [ 'transport' => 'smtp', @@ -91,6 +97,4 @@ function set_transanctional_email_settings(?InstanceSettings $settings = null): return 'smtp'; } - - return null; }