使用Laravel 4.2一次发送多封电子邮件

时间:2016-07-12 16:59:50

标签: laravel-4

我设法让它一次向一个用户发送电子邮件,但一个用户不向多个用户发送电子邮件。虽然我尝试了很多方法,但下面是一个示例代码,我试图发送多封电子邮件。

 if (isset($_POST['searchbutton'])) {
            $data = $query->where('blood_type', '=', "$search")
                            ->Where('state', '=', "$state")->get();

            if (isset($POST['emailbutton'])) {
                foreach ($data as $row)
                    Mail::send('emails.notify', array('name' => 'Name'), function($message) {

                        $message->to($row->email, $row->name)->subject('Hello');
                    });
            }
        }


谢谢。

2 个答案:

答案 0 :(得分:0)

以下是一些更改建议,假设所有用户都会收到相同的电子邮件,这意味着您不会使用用户名自定义每封电子邮件:

if (isset($_POST['searchbutton'])) {
  $data = $query->where('blood_type', '=', "$search")
    ->Where('state', '=', "$state")->get();

  $emails = $query->where('blood_type', '=', "$search")
    ->Where('state', '=', "$state")->lists('email');

  if (isset($POST['emailbutton'])) {
    Mail::send('emails.notify', array(), function($message) use ($emails) {
        $message->to($emails)->subject('Hello');
      });
  }
}

答案 1 :(得分:0)

这里的实际错误是变量$row不在闭包范围内。要更正此问题,您需要使用use关键字。即。

foreach ($data as $row){
    Mail::send('emails.notify', array('name' => 'Name'),
        function($message) use ($row) {
            $message->to($row->email, $row->name)->subject('Hello');
        }
    );
}

您可以阅读更多about PHP closures here