email_object->subject, tags: [$this->email_object->company_key], replyTo: $this->email_object->reply_to, from: $this->email_object->from, to: $this->email_object->to, bcc: $this->email_object->bcc ); } /** * Get the message content definition. * * @return \Illuminate\Mail\Mailables\Content */ public function content() { $links = Document::whereIn('id',$this->email_object->documents) ->where('size', '>', $this->max_attachment_size) ->cursor() ->map(function ($document){ return " $document->hash]) ."'>". $document->name .""; }); return new Content( view: $this->email_object->html_template, text: $this->email_object->text_template, with: [ 'text_body' => strip_tags($this->email_object->body), //@todo this is a bit hacky here. 'body' => $this->email_object->body, 'settings' => $this->email_object->settings, 'whitelabel' => $this->email_object->whitelabel, 'logo' => $this->email_object->logo, 'signature' => $this->email_object->signature, 'company' => $this->email_object->company, 'greeting' => '', 'links' => array_merge($this->email_object->links, $links->toArray()), ] ); } /** * Get the attachments for the message. * * @return array */ public function attachments() { $attachments = []; $attachments = collect($this->email_object->attachments)->map(function ($file){ return Attachment::fromData(fn () => base64_decode($file['file']), $file['name']); }); $documents = Document::whereIn('id',$this->email_object->documents) ->where('size', '<', $this->max_attachment_size) ->cursor() ->map(function ($document){ return Attachment::fromData(fn () => $document->getFile(), $document->name); }); return $attachments->merge($documents)->toArray(); } /** * Get the message headers. * * @return \Illuminate\Mail\Mailables\Headers */ public function headers() { return new Headers( messageId: null, references: [], text: $this->email_object->headers, ); } }