我在 laravel 中使用队列和调度程序发送邮件时遇到问题
I have problem in sending mail in laravel with queue and scheduler
我正在使用 laravel,我需要发送邮件。我配置了 cron 作业和调度程序,但我遇到了一个特殊问题。
我可以看到我的任务正在进入作业 table.but,当 queue:work
由 cron 作业和调度程序执行时,作业 table 为空并且失败作业为空,我也没有收到任何电子邮件。
我的 cron 作业命令:
usr/local/phpcron/Isphplaravel73 / LaravelApp-path/artisan schedule:run >>/dev/null 2>&1
app/console/kernel.php :
Protected function schedule(Schedule $schedule)
{
$this->command('queue:work')->withoutOverlapping() ;
}
感谢您的帮助。
你必须每分钟运行 Laravel schedule:run命令,将使用以下方法,
1.将 cronjob 设为 Linux
要编辑或创建 crontab 文件,请在 UNIX / Linux shell 提示符下键入以下命令:
$ crontab -e
然后在crontab中写入Laravel命令
* * * * * usr/local/phpcron/Isphplaravel73 / LaravelApp-path/artisan schedule:run >>/dev/null 2>&1
2。在您的 cPanel 共享主机中创建一个 cronjob
在此步骤中,我们必须定义 cPanel cronjob,以便每分钟 运行 调整我们的 laravel 计划。为此,登录到 cPanel 并转到 Cron Jobs 选项,然后创建一个新的 cronjob,如下所示。
Select Once Per Minute
通用设置 下拉框中的选项。
在命令文本框中根据此格式输入值。 格式:/usr/local/bin/php /home/hosting_user_name/your_artisan_file_path schedule:run >> /dev/null 2>&1
在命令文本框中输入命令后,点击添加新的Cron Job 按钮。
if Still not Working 检查每个作业的作业输出 运行
Protected function schedule(Schedule $schedule)
{
$this->command('queue:work')->withoutOverlapping()->sendOutputTo($filePath) ;
}
sendOutputTo
laravel 获取文件输出的方法。 https://laravel.com/docs/5.3/scheduling#task-output
这不是 laravel 或 php 的问题,而是服务器的问题。我以前遇到过这个问题,要么购买高级电子邮件,要么使用 gmail smtp。根据我的经验,服务器的默认电子邮件不适用于 cron。
我正在使用 laravel,我需要发送邮件。我配置了 cron 作业和调度程序,但我遇到了一个特殊问题。
我可以看到我的任务正在进入作业 table.but,当 queue:work
由 cron 作业和调度程序执行时,作业 table 为空并且失败作业为空,我也没有收到任何电子邮件。
我的 cron 作业命令:
usr/local/phpcron/Isphplaravel73 / LaravelApp-path/artisan schedule:run >>/dev/null 2>&1
app/console/kernel.php :
Protected function schedule(Schedule $schedule)
{
$this->command('queue:work')->withoutOverlapping() ;
}
感谢您的帮助。
你必须每分钟运行 Laravel schedule:run命令,将使用以下方法,
1.将 cronjob 设为 Linux
要编辑或创建 crontab 文件,请在 UNIX / Linux shell 提示符下键入以下命令:
$ crontab -e
然后在crontab中写入Laravel命令
* * * * * usr/local/phpcron/Isphplaravel73 / LaravelApp-path/artisan schedule:run >>/dev/null 2>&1
2。在您的 cPanel 共享主机中创建一个 cronjob
在此步骤中,我们必须定义 cPanel cronjob,以便每分钟 运行 调整我们的 laravel 计划。为此,登录到 cPanel 并转到 Cron Jobs 选项,然后创建一个新的 cronjob,如下所示。
Select Once Per Minute
通用设置 下拉框中的选项。
/usr/local/bin/php /home/hosting_user_name/your_artisan_file_path schedule:run >> /dev/null 2>&1
if Still not Working 检查每个作业的作业输出 运行
Protected function schedule(Schedule $schedule)
{
$this->command('queue:work')->withoutOverlapping()->sendOutputTo($filePath) ;
}
sendOutputTo
laravel 获取文件输出的方法。 https://laravel.com/docs/5.3/scheduling#task-output
这不是 laravel 或 php 的问题,而是服务器的问题。我以前遇到过这个问题,要么购买高级电子邮件,要么使用 gmail smtp。根据我的经验,服务器的默认电子邮件不适用于 cron。