如何使用 Laravel 在约会前 5 天发送短信?

问题描述 投票:0回答:1

Excel 输出后,我想向此人的手机号码发送一条短信,其中包含在 Excel 中输入的日期 5 天前的日期。

我还使用了 job 命令。

控制器.php

public function import(Request $request)
{
    Excel::import(new OtherImport, $request->file('file')->store('temp'));
    $insuranceData = Other::query()->select('personal_insurance', 'mobile')->get();

    $sentMobileNumbers = [];

    foreach ($insuranceData as $data) {
        $insuranceDate = $data->personal_insurance;
        $mobileNumber = $data->mobile;

        if (!empty($insuranceDate) && !in_array($mobileNumber, $sentMobileNumbers)) {
            try {
                $jalaliDate = Jalalian::fromFormat('Y/m/d', $insuranceDate);
                $carbonDate = Carbon::create($jalaliDate->getYear(), $jalaliDate->getMonth(), $jalaliDate->getDay());
                $smsDate = $carbonDate->subDay(5); 

                if ($smsDate->isPast()) {
                    SendSmsJob::dispatch([$mobileNumber]); 
                    $sentMobileNumbers[] = $mobileNumber; 
                }
            } catch (\Exception $e) {
                dd($e->getMessage());
            }
        }
    }
    return back();
} 
laravel sms
1个回答
0
投票

解决方案可能是将有延迟的作业发送到队列。然后使用

smsDate
变量。我建议还设置一个时间,在客户方便的时间触发短信发送。

© www.soinside.com 2019 - 2024. All rights reserved.