/home/brandsfa/bigshoponly.com/app/Services/MailService.php
<?php

namespace App\Services;

use Exception;
use App\Mail\TestEmailSender;
use Illuminate\Support\Facades\Mail;

class MailService
{

    public function getData(object $request): array
    {
        return [
            "status" => $request->get('status', 0),
            "name" => $request['name'],
            "host" => $request['host'],
            "driver" => $request['driver'],
            "port" => $request['port'],
            "username" => $request['username'],
            "email_id" => $request['email'],
            "encryption" => $request['encryption'],
            "password" => $request['password']
        ];
    }

    public function getMailData(object|array $mailData): array
    {
        return [
            "status" => 0,
            "name" => $mailData['name'],
            "host" => $mailData['host'],
            "driver" => $mailData['driver'],
            "port" => $mailData['port'],
            "username" => $mailData['username'],
            "email_id" => $mailData['email_id'],
            "encryption" => $mailData['encryption'],
            "password" => $mailData['password']
        ];
    }

    public function sendMail(object $request): int|string
    {
        $responseFlag = 0;
        try {
            $emailServicesSmtp = getWebConfig(name: 'mail_config');
            if ($emailServicesSmtp['status'] == 0) {
                $emailServicesSmtp = getWebConfig(name: 'mail_config_sendgrid');
            }
            if ($emailServicesSmtp['status'] == 1) {
                Mail::to($request->email)->send(new TestEmailSender());
                $responseFlag = 1;
            }
        } catch (Exception $exception) {
            $responseFlag = 2;
        }
        return $responseFlag;
    }

}