. */ namespace FireflyIII\Notifications; use Exception; use FireflyIII\Notifications\Notifiables\OwnerNotifiable; use FireflyIII\Support\Facades\Preferences; use FireflyIII\User; use GuzzleHttp\Exception\ClientException; use Illuminate\Notifications\Notification; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Notification as NotificationFacade; class NotificationSender { public static function send(OwnerNotifiable|User $user, Notification $notification): void { // ::locale($user->locale)) $lang = config('firefly.default_language'); Log::debug(sprintf('Notification send language defaults to "%s"', $lang)); if ($user instanceof User) { $lang = Preferences::getForUser($user, 'language', $lang)->data; Log::debug(sprintf('Notification send language set to "%s"', $lang)); } try { NotificationFacade::locale($lang)->send($user, $notification); } catch (ClientException $e) { Log::error(sprintf('[a] Error sending notification: %s', $e->getMessage())); } catch (Exception $e) { $message = $e->getMessage(); if (str_contains($message, 'Bcc')) { Log::warning('[Bcc] Could not send notification. Please validate your email settings, use the .env.example file as a guide.'); return; } if (str_contains($message, 'RFC 2822')) { Log::warning('[RFC] Could not send notification. Please validate your email settings, use the .env.example file as a guide.'); return; } Log::error('Could not send notification :(.'); Log::error($e->getMessage()); Log::error($e->getTraceAsString()); } } }