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\InstanceSettings;
|
||||||
use App\Models\Team;
|
use App\Models\Team;
|
||||||
use App\Notifications\Test;
|
use App\Notifications\TransactionalEmails\Test;
|
||||||
use Illuminate\Support\Facades\RateLimiter;
|
use Illuminate\Support\Facades\RateLimiter;
|
||||||
use Livewire\Attributes\Locked;
|
use Livewire\Attributes\Locked;
|
||||||
use Livewire\Attributes\Validate;
|
use Livewire\Attributes\Validate;
|
||||||
|
@@ -12,8 +12,9 @@ class EmailChannel
|
|||||||
public function send(SendsEmail $notifiable, Notification $notification): void
|
public function send(SendsEmail $notifiable, Notification $notification): void
|
||||||
{
|
{
|
||||||
$useInstanceEmailSettings = $notifiable->emailNotificationSettings->use_instance_email_settings;
|
$useInstanceEmailSettings = $notifiable->emailNotificationSettings->use_instance_email_settings;
|
||||||
|
$isTransactionalEmail = data_get($notification, 'isTransactionalEmail', false);
|
||||||
$customEmails = data_get($notification, 'emails', null);
|
$customEmails = data_get($notification, 'emails', null);
|
||||||
if ($useInstanceEmailSettings) {
|
if ($useInstanceEmailSettings || $isTransactionalEmail) {
|
||||||
$settings = instanceSettings();
|
$settings = instanceSettings();
|
||||||
} else {
|
} else {
|
||||||
$settings = $notifiable->emailNotificationSettings;
|
$settings = $notifiable->emailNotificationSettings;
|
||||||
@@ -49,8 +50,8 @@ class EmailChannel
|
|||||||
$settings->smtp_port,
|
$settings->smtp_port,
|
||||||
$encryption
|
$encryption
|
||||||
);
|
);
|
||||||
$transport->setUsername($settings->smtp_username);
|
$transport->setUsername($settings->smtp_username ?? '');
|
||||||
$transport->setPassword($settings->smtp_password);
|
$transport->setPassword($settings->smtp_password ?? '');
|
||||||
|
|
||||||
$mailer = new \Symfony\Component\Mailer\Mailer($transport);
|
$mailer = new \Symfony\Component\Mailer\Mailer($transport);
|
||||||
|
|
||||||
|
@@ -16,9 +16,10 @@ class InvitationLink extends CustomEmailNotification
|
|||||||
return [TransactionalEmailChannel::class];
|
return [TransactionalEmailChannel::class];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __construct(public User $user)
|
public function __construct(public User $user, public bool $isTransactionalEmail)
|
||||||
{
|
{
|
||||||
$this->onQueue('high');
|
$this->onQueue('high');
|
||||||
|
$this->isTransactionalEmail = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function toMail(): MailMessage
|
public function toMail(): MailMessage
|
||||||
|
@@ -17,10 +17,11 @@ class ResetPassword extends Notification
|
|||||||
|
|
||||||
public InstanceSettings $settings;
|
public InstanceSettings $settings;
|
||||||
|
|
||||||
public function __construct($token)
|
public function __construct($token, public bool $isTransactionalEmail)
|
||||||
{
|
{
|
||||||
$this->settings = instanceSettings();
|
$this->settings = instanceSettings();
|
||||||
$this->token = $token;
|
$this->token = $token;
|
||||||
|
$this->isTransactionalEmail = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function createUrlUsing($callback)
|
public static function createUrlUsing($callback)
|
||||||
|
@@ -8,9 +8,10 @@ use Illuminate\Notifications\Messages\MailMessage;
|
|||||||
|
|
||||||
class Test extends CustomEmailNotification
|
class Test extends CustomEmailNotification
|
||||||
{
|
{
|
||||||
public function __construct(public string $emails)
|
public function __construct(public string $emails, public string $isTransactionalEmail)
|
||||||
{
|
{
|
||||||
$this->onQueue('high');
|
$this->onQueue('high');
|
||||||
|
$this->isTransactionalEmail = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function via(): array
|
public function via(): array
|
||||||
|
Reference in New Issue
Block a user