Preview: BulkEmail.php
Size: 1.92 KB
/var/www/multi-event-cfp.bitkit.dk/httpdocs/app/Mail/BulkEmail.php
<?php
namespace App\Mail;
use App\Models\File;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
class BulkEmail extends Mailable
{
use Queueable, SerializesModels;
protected $event;
protected $emailData;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($event, $emailData)
{
$this->event = $event;
$this->emailData = $emailData;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$logo = config('app.url') . '/' . $this->event->theme['logo']['value'];
$eventHeader = $this->event->event_name;
$emailBody = $this->emailData->body;
$emailSubject = $this->emailData->subject;
$attachments = $this->emailData->attachments;
$body = "
<p>
{$emailBody}
</p>";
$email = $this->from(config('app.admin_mail', 'Admin'), $eventHeader)
->subject("{$emailSubject}")
->view('emails.user.bulk_email')
->with([
"body" => $body,
"logo" => $logo,
"eventHeader" => $eventHeader
]);
//$attachments is an array with file paths of attachments
if ($attachments) {
foreach ($attachments as $attachment) {
$file = File::whereId($attachment['file_id'])
->whereModelId($this->emailData->id)
->first();
if (isset($file->filepath)) {
$filePath = $file->filepath . $file->save_name;
$email->attachFromStorage($filePath, $file->filename);
}
}
}
return $email;
}
}
Directory Contents
Dirs: 0 × Files: 34