HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/werkenbijanvil.komma.nl/app/Mail/VacancyMail.php
<?php

namespace App\Mail;

use App\Servicepoints\Models\Servicepoint;
use App\Vacancies\Models\Vacancy;
use Illuminate\Bus\Queueable;
use Illuminate\Http\UploadedFile;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class VacancyMail extends Mailable
{
    use Queueable, SerializesModels;

    protected $request;

    /** @var UploadedFile[] $files */
    protected ?array $files;

    private Vacancy $vacancy;

    /**
     * Create a new message instance.
     *
     * @param         $request
     * @param         $files
     * @param Vacancy $vacancy
     */
    public function __construct($request, $files, Vacancy $vacancy)
    {
        $this->request = $request;
        $this->files = $files;
        $this->vacancy = $vacancy;

        // Textarea should be converted with nl2br
        if(isset($this->request['formMessage'])) $this->request['formMessage'] = nl2br($this->request['formMessage']);

    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        $defaultServicePoint = Servicepoint::with('translation')->find(config('site.global_servicePoint_id'));

        //Use the vacancies service point email address if possible...
        $mail = $this->vacancy->servicepoint->translation->email ?? null;

        //...else try to use the email address of the global service point..
        if(empty($mail)) $mail = $defaultServicePoint->translation->email ?? null;

        //...else try to use the mailTo address from the site config file OR if everything else failed use our support mail
        if(empty($mail)) $mail = config('site.mailTo', 'info@komma.nl');

        $mail = $this->view('emails.vacancy')
            ->subject(__('email.vacancy.subject'))
            ->to($mail)
            ->with([
                'mailToName' => ($this->vacancy->servicepoint->translation->first_name ?? $defaultServicePoint->translation->first_name) ?? null,
                'request' => $this->request
            ]);

        if(is_array($this->files)) {
            foreach ($this->files as $file) {
                $mail->attachData($file->get(), $file->getClientOriginalName());
            }
        }

        return $mail;
    }
}