findOrFail($formId); // select template $template = isset($form->moduleSettings['emailTemplate']) ? $form->moduleSettings['emailTemplate'] : 'contactform::emails.default'; // send email $status = Mail::send(Template::name($template), ['data' => $request], function (Message $message) use ($request, $form) { $message->from($request->email, $request->name); // get message subject $subject = isset($form->moduleSettings['subject']) ? $form->moduleSettings['subject'] : trans('contactform::admin/contents.defaultSubject'); $message->to($form->moduleSettings['email']) ->subject($subject); }); // inform user about success or failure return $this->sendResponse($status, $request, $form); } private function sendResponse($status, SendNewEmailRequest $request, $form) { // send response for ajax if ($request->ajax()) { return response()->json([ 'status' => $status ? 'success' : 'failed', 'redirectUrl' => $form->url ]); } else { // redirect user to previous form $response = redirect()->back(); return $status ? $response->with('success', 'sent') : $response->with('error', 'cannotSend'); } } }