company = $company; $this->user = $user; $this->invitation = $invitation; $this->entity = $invitation->{$entity_type}; $this->entity_type = $entity_type; } /** * Execute the job. * * @return void */ public function handle() { //Set DB MultiDB::setDb($this->company->db); //if we need to set an email driver do it now $this->setMailDriver($this->entity->client->getSetting('email_sending_method')); $mail_obj = (new EntityViewedObject($this->invitation, $this->entity_type))->build(); $mail_obj->from = [$this->entity->user->email, $this->entity->user->present()->name()]; //send email Mail::to($this->user->email) ->send(new EntityNotificationMailer($mail_obj)); //catch errors if (count(Mail::failures()) > 0) { $this->logMailError(Mail::failures()); } } private function logMailError($errors) { SystemLogger::dispatch( $errors, SystemLog::CATEGORY_MAIL, SystemLog::EVENT_MAIL_SEND, SystemLog::TYPE_FAILURE, $this->invoice->client ); } }