gpt4 book ai didi

php - Laravel 5.6 如何安排邮件队列

转载 作者:行者123 更新时间:2023-12-01 11:16:34 25 4
gpt4 key购买 nike

我正在尝试安排一封电子邮件来提醒明天必须完成的任务的用户。我做了一个自定义命令 email:reminder .这是我在自定义命令中的代码:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\Todo;
use Illuminate\Support\Facades\Mail;

class SendReminderEmail extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'email:reminder';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Remind users of items due to complete next day';

/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}

/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
/*
* Send mail dynamically
*/

/*
* hardcoded email
*/
Mail::queue('emails.reminder', [], function ($mail) {
$mail->to('example@email.com')
->from('todoreminder@gmail.com', 'To-do Reminder')
->subject('Due tomorrow on your To-do list!');
}
);


$this->info('Reminder email sent successfully!');
}
}

我现在对电子邮件进行了硬编码以对其进行测试,但是当我运行时 php artisan email:reminder ,我有一个异常(exception)
[InvalidArgumentException]     
Only mailables may be queued.

然后我检查了 Laravel 的文档,但任务调度和电子邮件队列是 2 个独立的主题。
  • 如何在 Laravel 中通过任务调度实现发送电子邮件队列
    5.6好吗?
  • 另外我如何将数据(即数据库中的待办事项)传递到我的电子邮件中
    请查看?

  • 任何帮助是极大的赞赏!

    最佳答案

    您应该创建一个完全按照您描述的方式执行的命令,但没有调度。您可以使用 crontab 进行调度或其他一些任务调度程序。

    您是否遵循了 Laravel 关于邮件的文档? https://laravel.com/docs/5.6/mail

    一旦你到达 Sending Mail section ,你不应该创建一个 Controller 而是一个命令。

    当该命令起作用时,将其添加到任务调度程序(例如 crontab)以每天运行。

    关于php - Laravel 5.6 如何安排邮件队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50198003/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com