简体   繁体   中英

Laravel, how to record into DB if email wasn't delivered?

I have a function to send email to customer for every new registration. and my client want to record any unsuccessfull email sent (ie if email address is wrong).

i try using try-cacth and mail::failure.

 try{  
      Mail::send('mail.mail', compact(''), function ($message) use ($) {
                $message->from();
                $message->subject();
                $message->to();
            });
    }
    catch(\Swift_TransportException $e){
       
    }

mail:failures

 if (Mail::failures()) {
     echo ('error');
 }

but this working if network failure, such as email host is down. how to record/get info if email wasnt delivered because email address/domain not found.

i get this info in email if email wasnt delivered. but how to record it the ddetails into database.

Address not found
Your message wasn't delivered to asna@asmas.cl because the domain asmas.cl couldn't be found. Check for typos or unnecessary spaces and try again.

look my below code gets a json resposnse after sending an sms, your system should also get a response json after sending the email. The json carrys a set of data. check the particular data response you wish for and update it accordingly on your table.

      $responseJson = json_decode($response, true);
//    data returned --> [{"status":"200","response":"success","message_id":82682342,"recipient":"4113122"}]

      $status = ($responseJson[0])['status'];
      $responseDescripition = ($responseJson[0])['response'];

      Log::info('API status >>>>> ' . $status);
      Log::info('API Response Description >>>>> ' . $responseDescripition);

 if (($responseJson[0])) {
       DB::table('mess')->where('id', $request->input('template'))
               ->update([
               'sentstatus' => '1',
               'status' => $status,
               'responsecode' => $responseDescripition,
               'sent_on' => \Carbon\Carbon::now(),
               ]);
  }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM