【发布时间】:2020-12-10 03:24:53
【问题描述】:
我正在尝试使用 laravel 队列发送批量电子邮件。到目前为止,我已经写下了逻辑并且工作正常,但问题是当我在控制器中编写逻辑时需要很长时间,所以我想使用作业,但问题仍然存在。
我的问题
我的问题是,即使我使用队列,我也无法在后台发送电子邮件。
控制器
public function newsletter(Request $request)
{
//dd($request->all());
dispatch(new SendEmail($request));
Session::flash('message', 'Email Sent');
Session::flash('class', 'success');
return redirect()->route('news');
}
工作
public function handle(Request $request)
{
//
$data = array(
'message' => $request->message,
'subject' => $request->subject,
'file' => $request->file("file")
);
$teachingLevel = $request->highest_teaching_level;
$school = $request->school;
$province = $request->province;
$district = $request->district;
$subject = $request->subject;
if ($teachingLevel != "" && $school != "" && $province != "" && $district != "") {
$email = User::where('highest_teaching_level', $teachingLevel)->where('current_school_name', $school)->where('address','LIKE', '%'.$province.'%')->where('address','LIKE', '%'.$district.'%')->pluck('email');
}else{
$email = User::pluck('email');
}
foreach($email as $e)
{
Mail::to($e)->send(new NewsLetter($data, $subject));
}
}
电子邮件已发送,但不会在后台发生。也许这与我在handle() 函数中传递$request 变量的方式有关。
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
您是否尝试过使用“同步”队列驱动程序?
-
@TariqImtinan 不,我使用过数据库队列。
-
然后尝试使用“同步”驱动程序,希望它能帮助您找出问题的根本原因。
标签: php laravel eloquent laravel-queue