This commit is contained in:
Andras Bacsai
2023-06-13 10:51:58 +02:00
parent 9e66e7a3e1
commit ecd16de53f
5 changed files with 49 additions and 15 deletions

View File

@@ -12,6 +12,7 @@ class Email extends Component
public InstanceSettings $settings;
protected $rules = [
'settings.extra_attributes.smtp_active' => 'nullable|boolean',
'settings.extra_attributes.smtp_host' => 'required',
'settings.extra_attributes.smtp_port' => 'required|numeric',
'settings.extra_attributes.smtp_encryption' => 'nullable',
@@ -22,6 +23,26 @@ class Email extends Component
'settings.extra_attributes.smtp_from_address' => 'required|email',
'settings.extra_attributes.smtp_from_name' => 'required',
];
protected $validationAttributes = [
'settings.extra_attributes.smtp_from_address' => 'From Address',
'settings.extra_attributes.smtp_from_name' => 'From Name',
'settings.extra_attributes.smtp_recipients' => 'Recipients',
'settings.extra_attributes.smtp_host' => 'Host',
'settings.extra_attributes.smtp_port' => 'Port',
'settings.extra_attributes.smtp_encryption' => 'Encryption',
'settings.extra_attributes.smtp_username' => 'Username',
'settings.extra_attributes.smtp_password' => 'Password',
'settings.extra_attributes.smtp_test_recipients' => 'Test Recipients',
];
public function instantSave()
{
try {
$this->submit();
} catch (\Exception $e) {
$this->settings->extra_attributes->smtp_active = false;
$this->validate();
}
}
public function test_email()
{
Notification::send($this->settings, new TestEmail);

View File

@@ -12,11 +12,14 @@ class TransactionalEmailChannel
{
public function send(User $notifiable, Notification $notification): void
{
$settings = InstanceSettings::get();
if ($settings->extra_attributes?->get('smtp_active') !== true) {
return;
}
$email = $notifiable->email;
if (!$email) {
return;
}
$settings = InstanceSettings::get();
$this->bootConfigs($settings);
$mailMessage = $notification->toMail($notifiable);