簡體   English   中英

向 Laravel 中的所有用戶發送每周 email 的方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM