2014-08-27 5 views
0

Я могу отправить несколько писем с помощью класса Mail в Laravel. Однако он медленный. Следовательно, я хотел бы создать индикатор выполнения, используя AJAX, который показывает, сколько писем было отправлено до завершения.laravel: Как узнать, сколько писем успешно отправлено?

Как узнать количество писем, которые были успешно отправлены до завершения?


Контроллер

private function sendMail($email){ //get saved email model object 

    $data = [ 
     "message_body"=>$email->message 
    ]; 

    $recipients = DB::table('newsletter_subscribers')->lists('email'); //list of multiple email addresses 

    Mail::send('emails.body', $data, function($message)use($recipients,$email) 
    { 
     $message->to($recipients) 
      ->subject($email->subject) 
      ->from('[email protected]','prettypal.com'); 
    }); 
    return 'success'; 
} 

ответ

0

, что я могу предложить, чтобы позвонить Mail::send для каждого получателя, как этот

$number = 0; 
foreach ($recipients as $recipient) { 
    Mail::send('emails.body', $data, function($message) use($recipient,$email){ 
     $message->to($recipient) 
      ->subject($email->subject) 
      ->from('[email protected]','prettypal.com'); 
    }); 
    $number ++; // this is actually the number of sent mails 
} 
+0

Да, я изначально был идти к этому направлению тоже, но я боялся, это будет страдать от производительности ... или будет? Мне было интересно, есть ли у Laravel или swiftmailer какой-либо метод определения отправленных писем. – Mark

Смежные вопросы