mailing = $mailing; } /** * Get the message envelope. */ public function envelope(): Envelope { return new Envelope( subject:$this->mailing->subject, ); } /** * Get the message content definition. */ public function content(): Content { return new Content( markdown: 'emails.scheduled-report', with: [ 'mailingContent' => $this->mailing->message, 'logoPath'=> resource_path('images/smartcane.png'), 'subject' => $this->mailing->subject, 'mailing' => $this->mailing, ], //htmlString: $this->mailing->message ); } /** * Get the attachments for the message. * * @return array */ public function attachments(): array { return $this->mailing->attachments()->get()->map(function (ProjectMailingAttachment $attachment) { $attachment_path = $attachment->mailing->project->download_path."/".$attachment->path; if (!File::exists($attachment_path)) { logger('Could not find attachment: ' . $attachment_path); return null; } logger('Attachment found: ' . $attachment_path); $mime = 'application/pdf'; // default MIME type $extension = pathinfo($attachment->path, PATHINFO_EXTENSION); if ($extension === 'docx') { $mime = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'; } return Attachment::fromStorage( path: $attachment_path ) ->as($attachment->path) ->withMime($mime); }) ->filter() ->toArray(); } }