Laravel-根据条件在将来发送邮件
我想根据用户设定的时间表向他们发送电子邮件 我读到了,现在它看起来很适合:Laravel-根据条件在将来发送邮件,laravel,email,cron,queue,beanstalkd,Laravel,Email,Cron,Queue,Beanstalkd,我想根据用户设定的时间表向他们发送电子邮件 我读到了,现在它看起来很适合: $when = Carbon::now()->addMinutes($minutes); // i can calculate minutes at this moment \Mail::to($user)->later($when, new \App\Mail\TestMail); 但有几件事我不太确定: 用户可以取消未来的计划。在这种情况下,我该如何取消一封将来应该发送的电子邮件呢。在发送实际电子邮件之
$when = Carbon::now()->addMinutes($minutes); // i can calculate minutes at this moment
\Mail::to($user)->later($when, new \App\Mail\TestMail);
但有几件事我不太确定:
\App\Mail\TestMail
的handle
方法上尝试了return false
,它开始抛出错误有很多方法可以做到这一点。就我个人而言,我会按照时间表对电子邮件进行排队,而不是将它们添加到队列中以供以后使用 因此,您每天(或每小时或每分钟)运行一次计划任务,运行查询以选择哪些用户需要电子邮件,然后使用该结果集,为每个结果向队列中添加作业 这样,如果用户取消订阅,您就不必担心删除已经排队的作业
Laravel提供了一个非常好的界面,用于创建计划作业(),然后可以通过cronjob调用该作业。在电子邮件表中创建一个db字段,如果它对应的是电子邮件,则该字段应处于活动状态,否则,如果用户取消订阅或停止获取,则该字段应为0,以便您可以使用“处于活动状态”的条件。。