new_email = $new_email; $this->old_email = $old_email; $this->company = $company; } public function handle() { //Set DB MultiDB::setDb($this->company->db); //If we need to set an email driver do it now $this->setMailDriver($this->company->settings->email_sending_method); /*Build the object*/ $mail_obj = new \stdClass; $mail_obj->subject = ctrans('texts.email_address_changed'); $mail_obj->markdown = 'email.admin.generic'; $mail_obj->from = [$this->company->owner()->email, $this->company->owner()->present()->name()]; $mail_obj->tag = $this->company->company_key; $mail_obj->data = $this->getData(); //Send email via a Mailable class Mail::to($this->old_email) ->send(new UserNotificationMailer($mail_obj)); Mail::to($this->new_email) ->send(new UserNotificationMailer($mail_obj)); //Catch errors and report. if (count(Mail::failures()) > 0) { $this->logMailError(Mail::failures()); } } private function getData() { return [ 'title' => ctrans('texts.email_address_changed'), 'message' => ctrans( 'texts.email_address_changed_message', ['old_email' => $this->old_email, 'new_email' => $this->new_email, ] ), 'url' => config('ninja.app_url'), 'button' => ctrans('texts.account_login'), 'signature' => $this->company->owner()->signature, 'logo' => $this->company->present()->logo(), ]; } private function logMailError($errors) { SystemLogger::dispatch( $errors, SystemLog::CATEGORY_MAIL, SystemLog::EVENT_MAIL_SEND, SystemLog::TYPE_FAILURE, $this->company ); } }