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:
@@ -4,7 +4,7 @@ namespace App\Livewire;
|
||||
|
||||
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 @@ class EmailChannel
|
||||
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 @@ class EmailChannel
|
||||
$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 @@ class InvitationLink extends CustomEmailNotification
|
||||
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 @@ use Illuminate\Notifications\Messages\MailMessage;
|
||||
|
||||
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
|
||||
|
Reference in New Issue
Block a user