47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Notifications\Channels;
 | |
| 
 | |
| use App\Models\InstanceSettings;
 | |
| use App\Models\User;
 | |
| use Exception;
 | |
| use Illuminate\Mail\Message;
 | |
| use Illuminate\Notifications\Notification;
 | |
| use Illuminate\Support\Facades\Mail;
 | |
| use Log;
 | |
| 
 | |
| class TransactionalEmailChannel
 | |
| {
 | |
|     public function send(User $notifiable, Notification $notification): void
 | |
|     {
 | |
|         $settings = InstanceSettings::get();
 | |
|         if (! data_get($settings, 'smtp_enabled') && ! data_get($settings, 'resend_enabled')) {
 | |
|             Log::info('SMTP/Resend not enabled');
 | |
| 
 | |
|             return;
 | |
|         }
 | |
|         $email = $notifiable->email;
 | |
|         if (! $email) {
 | |
|             return;
 | |
|         }
 | |
|         $this->bootConfigs();
 | |
|         $mailMessage = $notification->toMail($notifiable);
 | |
|         Mail::send(
 | |
|             [],
 | |
|             [],
 | |
|             fn (Message $message) => $message
 | |
|                 ->to($email)
 | |
|                 ->subject($mailMessage->subject)
 | |
|                 ->html((string) $mailMessage->render())
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     private function bootConfigs(): void
 | |
|     {
 | |
|         $type = set_transanctional_email_settings();
 | |
|         if (! $type) {
 | |
|             throw new Exception('No email settings found.');
 | |
|         }
 | |
|     }
 | |
| }
 | 
