diff --git a/app/Http/Livewire/Settings/Email.php b/app/Http/Livewire/Settings/Email.php new file mode 100644 index 000000000..75936d629 --- /dev/null +++ b/app/Http/Livewire/Settings/Email.php @@ -0,0 +1,60 @@ + 'required', + 'settings.smtp_port' => 'required|numeric', + 'settings.smtp_encryption' => 'nullable', + 'settings.smtp_username' => 'nullable', + 'settings.smtp_password' => 'nullable', + 'settings.smtp_timeout' => 'nullable', + 'settings.smtp_recipients' => 'required', + 'settings.smtp_test_recipients' => 'nullable', + 'settings.smtp_from_address' => 'required|email', + 'settings.smtp_from_name' => 'required', + ]; + public function test_email() + { + config()->set('mail.default', 'smtp'); + config()->set('mail.mailers.smtp', [ + "transport" => "smtp", + "host" => $this->settings->smtp_host, + "port" => $this->settings->smtp_port, + "encryption" => $this->settings->smtp_encryption, + "username" => $this->settings->smtp_username, + "password" => $this->settings->smtp_password, + ]); + + $this->send_email(); + } + public function test_email_local() + { + config()->set('mail.default', 'smtp'); + config()->set('mail.mailers.smtp', [ + "transport" => "smtp", + "host" => 'coolify-mail', + "port" => 1025, + ]); + $this->send_email(); + } + private function send_email() + { + } + public function submit() + { + $this->validate(); + $this->settings->smtp_recipients = str_replace(' ', '', $this->settings->smtp_recipients); + $this->settings->smtp_test_recipients = str_replace(' ', '', $this->settings->smtp_test_recipients); + $this->settings->save(); + } +} diff --git a/database/migrations/2023_03_20_112813_create_instance_settings_table.php b/database/migrations/2023_03_20_112813_create_instance_settings_table.php index 22c709fb8..f4445e658 100644 --- a/database/migrations/2023_03_20_112813_create_instance_settings_table.php +++ b/database/migrations/2023_03_20_112813_create_instance_settings_table.php @@ -21,8 +21,20 @@ return new class extends Migration $table->boolean('do_not_track')->default(false); $table->boolean('is_auto_update_enabled')->default(true); $table->boolean('is_registration_enabled')->default(true); + + // SMTP for transactional emails + $table->string('smtp_host')->nullable(); + $table->integer('smtp_port')->nullable(); + $table->string('smtp_encryption')->nullable(); + $table->string('smtp_username')->nullable(); + $table->string('smtp_password')->nullable(); + $table->integer('smtp_timeout')->nullable(); + $table->string('smtp_from_address')->nullable(); + $table->string('smtp_from_name')->nullable(); + $table->string('smtp_test_recipients')->nullable(); + $table->string('smtp_recipients')->nullable(); + // $table->string('custom_dns_servers')->default('1.1.1.1,8.8.8.8'); - // $table->string('preview_domain_separator')->default('.'); // $table->boolean('is_dns_check_enabled')->default(true); $table->timestamps(); }); diff --git a/resources/views/emails/example.blade.php b/resources/views/emails/example.blade.php deleted file mode 100644 index bbfbe24b1..000000000 --- a/resources/views/emails/example.blade.php +++ /dev/null @@ -1 +0,0 @@ -Hello I am an example diff --git a/resources/views/livewire/run-command.blade.php b/resources/views/livewire/run-command.blade.php old mode 100755 new mode 100644 diff --git a/resources/views/livewire/settings/email.blade.php b/resources/views/livewire/settings/email.blade.php index 67aade3fd..aada159d7 100644 --- a/resources/views/livewire/settings/email.blade.php +++ b/resources/views/livewire/settings/email.blade.php @@ -1,18 +1,42 @@ -