Add no encryption option for SMTP settings

Related to #4311

Add option to configure SMTP settings without encryption.

* Update `app/Livewire/Notifications/Email.php` and `app/Livewire/SettingsEmail.php` to include "No Encryption" option in the `smtpEncryption` field and update validation rules.
* Modify `app/Notifications/Channels/EmailChannel.php` to handle the "No Encryption" option in the `bootConfigs` method.
* Add `set_transanctional_email_settings` function in `app/Livewire/Help.php` to support the "No Encryption" option.
* Update `config/mail.php` to handle the "No Encryption" option in the mail configuration.
This commit is contained in:
Vishwanath Martur
2024-11-23 13:04:54 +05:30
parent 13f9b153e7
commit 1f499c1488
5 changed files with 36 additions and 4 deletions

View File

@@ -56,3 +56,35 @@ class Help extends Component
return view('livewire.help')->layout('layouts.app');
}
}
function set_transanctional_email_settings($settings = null)
{
if (is_null($settings)) {
$settings = instanceSettings();
}
if ($settings->resend_enabled) {
config()->set('mail.default', 'resend');
config()->set('resend.api_key', $settings->resend_api_key);
return 'resend';
}
if ($settings->smtp_enabled) {
config()->set('mail.default', 'smtp');
config()->set('mail.mailers.smtp', [
'transport' => 'smtp',
'host' => $settings->smtp_host,
'port' => $settings->smtp_port,
'encryption' => $settings->smtp_encryption === 'none' ? null : $settings->smtp_encryption,
'username' => $settings->smtp_username,
'password' => $settings->smtp_password,
'timeout' => $settings->smtp_timeout,
'local_domain' => null,
]);
return 'smtp';
}
return false;
}