where('status', 0); })->where(function ($query) { $query->whereNull('time')->orWhere('time', '<', date('Y-m-d H:i:s')); })->get(); foreach ($emailRecords as $records) { // 获取模版配置 $emailTemplate = $records->emailTemplate; // 获取未发送人员 $emailRecordUsers = $records->emailRecordUsers->where('status', 0); foreach ($emailRecordUsers as $recordUser) { // 替换后的标题 $title = EmailRecordUser::template($records->subject, $recordUser->var_data); // 替换后的内容 $template = EmailRecordUser::template($emailTemplate->content, $recordUser->var_data); try { // 发送邮件 EmailRecordUser::email($title, $template, $recordUser->email); $recordUser->status = 1; } catch (\Exception $e) { $recordUser->status = 2; $recordUser->reason = $e->getMessage(); } $recordUser->send_time = date('Y-m-d H:i:s'); $recordUser->save(); } $records->status = 1; $records->send_time = date('Y-m-d H:i:s'); $records->save(); } return $this->info('更新完成'); } }