如何根据用户设定的日期发送预定的电子邮件



我需要帮助,了解如何在用户指定日期前一周自动发送电子邮件。例如,一个用户插入了一个记录,他在其中输入了一个日期,我想在他设定的日期前一周向他发送一封电子邮件提醒。我怎么能在拉拉威尔做到这一点?非常感谢。我希望有一个快速的方法,因为我在最后期限。

我的建议是任务调度。它很容易实现,而且它可以在这里完成任务。

首先,创建一个命令:

php artisan make:command SendEmail //Call it as you wish 

然后,在handle((方法中,编写发送电子邮件的所有逻辑。例如:

public function handle()
{
$users = User::get();
foreach($users as $user){
if(Carbon::parse($user->reminded_date)->diffInDays(Carbon::now()) == 7){ //Or however your date field on user is called
//Send an email
}
}
}

为了进行日期比较,我使用了Carbon的diffInDays((方法。如果你不想要碳的话,你当然可以用其他的东西。

完成电子邮件逻辑后,现在需要为该命令创建一个时间表,以便按设置的间隔自动运行。您可以在AppConsoleKernel类的schedule((方法中执行此操作。例如:

$schedule->command('emails:send')->daily();

这一行将使您的命令每天运行。如果你不想让它每天运行,下面是所有时间表频率选项的列表

"电子邮件:发送"名称您的命令名称:

protected $signature = 'emails:send';

如果你需要更多的细节或帮助,请告诉我。

相关内容

  • 没有找到相关文章

最新更新