fix: send internal notifications of email errors

This commit is contained in:
Andras Bacsai
2023-09-18 15:19:27 +02:00
parent 3eb1a1f48c
commit 1452cdf5ad
8 changed files with 26 additions and 33 deletions

View File

@@ -12,23 +12,29 @@ class EmailChannel
{
public function send(SendsEmail $notifiable, Notification $notification): void
{
$this->bootConfigs($notifiable);
$recepients = $notifiable->getRecepients($notification);
try {
$this->bootConfigs($notifiable);
$recepients = $notifiable->getRecepients($notification);
ray($recepients);
if (count($recepients) === 0) {
throw new Exception('No email recipients found');
}
if (count($recepients) === 0) {
throw new Exception('No email recipients found');
$mailMessage = $notification->toMail($notifiable);
throw new Exception('EmailChannel is disabled');
Mail::send(
[],
[],
fn (Message $message) => $message
->to($recepients)
->subject($mailMessage->subject)
->html((string)$mailMessage->render())
);
} catch (Exception $e) {
ray($e->getMessage());
send_internal_notification("EmailChannel error: {$e->getMessage()}. Failed to send email to: " . implode(', ', $recepients) . " with subject: {$mailMessage->subject}");
throw $e;
}
$mailMessage = $notification->toMail($notifiable);
ray("Sending email to: " . implode(', ', $recepients) . " with subject: {$mailMessage->subject}");
Mail::send(
[],
[],
fn (Message $message) => $message
->to($recepients)
->subject($mailMessage->subject)
->html((string)$mailMessage->render())
);
}
private function bootConfigs($notifiable): void