[英]Method to send a weekly email to all users in Laravel
我目前已經設置了這個可郵寄的。
Controller
class EmailController extends Controller
{
public function sendMail ()
{
$user = auth()->User::all();
Mail::to($user)->send(new WeeklyUpdate($user));
if(Mail::faillures())
{
return response()->Fail('Fail');
}
else
{
return response()->Success('Succses');
}
}
郵寄class
class WeeklyUpdate extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('email.WeeklyUpdate');
}
例如,我該如何開始設置,例如,所有用戶每周日晚上都會收到該weeklyUpdate email。 我確實做了一些研究,但只找到了部分解釋,並且由於我是 Laravel 的新手,我想要一些關於從哪里開始着手的指導。
在app\Http\Console\Kernel.php
下的 Laravel 調度程序中調度作業
並指定 CRON 作業的時間間隔
這樣的事情應該做
protected function schedule(Schedule $schedule)
{
foreach (App\User::all() as $user) {
$schedule->job(new SendWeeklyEmail($user))->weekly();
}
}
假設您有這樣的排隊作業設置
class SendWeeklyEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $user;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
\Mail::to($this->user->email)->send(new App\Mail\WeeklyUpdate($this->user));
}
}
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.