fix(email): Emails are not sent in multiple cases
- fix(email): transactional emails are all not sent if `Use system wide (transactional) email settings` is disabled and no other email provide is setup on the Notifications page - fix(email): no emails are sent if SMTP username and SMTP password are empty (which is the case in dev for example) - fix(email): Wrong test email notification is used, causing the transactional email test notification to fail if no email provider is set up on the Notifications page.
This commit is contained in:
parent
78e2d63f38
commit
d15f1b9b94
5 changed files with 11 additions and 7 deletions
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
use App\Models\InstanceSettings;
|
||||
use App\Models\Team;
|
||||
use App\Notifications\Test;
|
||||
use App\Notifications\TransactionalEmails\Test;
|
||||
use Illuminate\Support\Facades\RateLimiter;
|
||||
use Livewire\Attributes\Locked;
|
||||
use Livewire\Attributes\Validate;
|
||||
|
|
|
|||
|
|
@ -12,8 +12,9 @@ public function __construct() {}
|
|||
public function send(SendsEmail $notifiable, Notification $notification): void
|
||||
{
|
||||
$useInstanceEmailSettings = $notifiable->emailNotificationSettings->use_instance_email_settings;
|
||||
$isTransactionalEmail = data_get($notification, 'isTransactionalEmail', false);
|
||||
$customEmails = data_get($notification, 'emails', null);
|
||||
if ($useInstanceEmailSettings) {
|
||||
if ($useInstanceEmailSettings || $isTransactionalEmail) {
|
||||
$settings = instanceSettings();
|
||||
} else {
|
||||
$settings = $notifiable->emailNotificationSettings;
|
||||
|
|
@ -49,8 +50,8 @@ public function send(SendsEmail $notifiable, Notification $notification): void
|
|||
$settings->smtp_port,
|
||||
$encryption
|
||||
);
|
||||
$transport->setUsername($settings->smtp_username);
|
||||
$transport->setPassword($settings->smtp_password);
|
||||
$transport->setUsername($settings->smtp_username ?? '');
|
||||
$transport->setPassword($settings->smtp_password ?? '');
|
||||
|
||||
$mailer = new \Symfony\Component\Mailer\Mailer($transport);
|
||||
|
||||
|
|
|
|||
|
|
@ -16,9 +16,10 @@ public function via(): array
|
|||
return [TransactionalEmailChannel::class];
|
||||
}
|
||||
|
||||
public function __construct(public User $user)
|
||||
public function __construct(public User $user, public bool $isTransactionalEmail)
|
||||
{
|
||||
$this->onQueue('high');
|
||||
$this->isTransactionalEmail = true;
|
||||
}
|
||||
|
||||
public function toMail(): MailMessage
|
||||
|
|
|
|||
|
|
@ -17,10 +17,11 @@ class ResetPassword extends Notification
|
|||
|
||||
public InstanceSettings $settings;
|
||||
|
||||
public function __construct($token)
|
||||
public function __construct($token, public bool $isTransactionalEmail)
|
||||
{
|
||||
$this->settings = instanceSettings();
|
||||
$this->token = $token;
|
||||
$this->isTransactionalEmail = true;
|
||||
}
|
||||
|
||||
public static function createUrlUsing($callback)
|
||||
|
|
|
|||
|
|
@ -8,9 +8,10 @@
|
|||
|
||||
class Test extends CustomEmailNotification
|
||||
{
|
||||
public function __construct(public string $emails)
|
||||
public function __construct(public string $emails, public string $isTransactionalEmail)
|
||||
{
|
||||
$this->onQueue('high');
|
||||
$this->isTransactionalEmail = true;
|
||||
}
|
||||
|
||||
public function via(): array
|
||||
|
|
|
|||
Loading…
Reference in a new issue