我正在通过Laravel调度程序运行任务并通过电子邮件发送结果,这可能是因为:
emailOutputTo是命令和exec方法的专有内容。
逻辑:
$schedule->call(function () {
printf("Performing Purge... \n");
printf("Purge completed! \n");
})->everyMinute()
->emailOutputTo('email@mail.com');
主题行始终为:
[]的计划作业输出
,关于如何自定义电子邮件主题行尚不清楚或没有记录。
答案 0 :(得分:0)
虽然我找不到任何文档,但是当我挖掘框架代码时,
在laravel/framework/src/Illuminate/Console/Scheduling/Event.php
emailOutput()
函数调用以下函数
protected function getEmailSubject()
{
if ($this->description) {
return $this->description;
}
return "Scheduled Job Output For [{$this->command}]";
}
此$description
也是Event
类的公共属性,因此,如果您可以某种方式分配描述,它将起作用。
一旦我有明确的答案,我将更新此答案,同时这可能会带您到您的身边。
答案 1 :(得分:0)
如果有人仍在寻找解决方案:使用“名称”功能设置电子邮件的标题,例如:
$schedule->command('backup:database')->daily()->name("Nightly Backup")
->emailOutputTo('admin@yourwebsite.com');
这会将电子邮件标题设置为“ Nightly Backup”。这也将成为 工匠schedule:run报告的运行命令的名称,例如:
> php artisan schedule:run
Running scheduled command: Nightly Backup