I have a function that can send mail on Laravel5 using this
/** * Send Mail from Parts Specification Form */ public function sendMail(Request $request) { $data = $request->all(); $messageBody = $this->getMessageBody($data); Mail::raw($messageBody, function ($message) { $message->from('[email protected]', 'Learning Laravel'); $message->to('[email protected]'); $message->subject('Learning Laravel test email'); }); return redirect()->back(); } /** * Return message body from Parts Specification Form * @param object $data * @return string */ private function getMessageBody($data) { $messageBody = 'dummy dummy dummy dummy'; }
and is sent successfully. But how to check if it was sent or not? Like
if (Mail::sent == 'error') { echo 'Mail not sent'; } else { echo 'Mail sent successfully.'; }
I'm just guessing that code.
how do you mean ? wrap it in a try catch instead, if exception not caught email is sent, otherwise it failed, try { Mail::to($userEmail)->send($welcomeMailable); } catch (Exception $e) { //Email sent failed. }
Well mail() simply returns a boolean value depending on whether the mail was successfully accepted for delivery. From the php.net site: Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
I'm not entirely sure this would work but you can give it a shot
/** * Send Mail from Parts Specification Form */ public function sendMail(Request $request) { $data = $request->all(); $messageBody = $this->getMessageBody($data); Mail::raw($messageBody, function ($message) { $message->from('[email protected]', 'Learning Laravel'); $message->to('[email protected]'); $message->subject('Learning Laravel test email'); }); // check for failures if (Mail::failures()) { // return response showing failed emails } // otherwise everything is okay ... return redirect()->back(); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With