我想创建一个过程,它将根据一个条件自动发送电子邮件。
在我的桌子上,我有一个expire_date
列,我想给每个人发送自动电子邮件,提醒他们他们的帐户下周到期。
我正在使用laravel和mysql。
谢谢
设置每日定时任务,检查用户在一周内的过期时间。
在app/控制台/kernel.phpprotected function schedule(Schedule $schedule)
{
$schedule->command('notify:expirations')
->daily();
}
并创建一个新的artisan命令来检查过期时间
不要忘记在服务器上设置cron job以每分钟运行一次php artisan schedule:run
您可以使用laravel的Mail
外观。
$ten_days_from_now = 'Carbon'Carbon::now()->addDay(10);
$users = User::where('expire_date', '<', $ten_days_from_now)->get();
foreach ($users as $user) {
Mail::send('emails.reminder', ['user' => $user], function ($m) use ($user) {
$m->from('hello@app.com', 'Your Application');
$m->to($user->email, $user->name)->subject('Your Reminder!');
});
}
您可以将类似于的内容放入命令中,并使用cron执行。