Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check mail is sent successfully or not on Laravel 5

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.

like image 817
Goper Leo Zosa Avatar asked Oct 01 '15 08:10

Goper Leo Zosa


People also ask

How do I know if an email has been successful in Laravel?

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. }

How do you check if mail is send or not in PHP?

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.


1 Answers

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(); } 
like image 143
haakym Avatar answered Oct 26 '22 21:10

haakym