在laravel中向不同用户发送多封电子邮件

时间:2017-09-06 22:04:37

标签: php jquery laravel email oop

我使用请求数组获取不同的ID:

  <label for="students" class="students">Students</label>
  <select name="students[]" class="form-control select2-multi" multiple="multiple">
  @foreach($students as $student)
     <option value="{{ $student->id }}" >{{ $student->first_name }}</option>
  @endforeach
 </select>

我能够正确获取ID。现在问题是如何通过请求将邮件发送给所选择的学生(用户)

我想到了一个for循环,但我似乎无法解决它。 谢谢你们

2 个答案:

答案 0 :(得分:-1)

如果你有很多学生(更多几百人),我建议你使用队列。对于Laravel来说,GiHub上有很多解决方案。

答案 1 :(得分:-1)

在处理表单提交的控制器中,您将遍历所选用户,然后您就可以使用Mail facade通过当前的电子邮件驱动程序发送电子邮件。

public function formSubmission(Request $request){
    $emails = $request->input('students');
    foreach($emails as $email){
        \Mail::to($email)->send(new EmailMessage());
    }
}

如果您希望首先找到与该电子邮件关联的用户并将其传递到邮件外观,那么您只需执行查询并循环浏览这些结果。

public function formSubmission(Request $request){
    $emails = $request->input('students');
    $users = User::whereIn('email', $emails)->get();
    foreach($users as $user){
        \Mail::to($user)->send(new EmailMessage());
    }
}