如何在Laravel计划调用中通过emailOutputTo自定义电子邮件主题

时间:2018-08-05 18:07:58

标签: laravel

我正在通过Laravel调度程序运行任务并通过电子邮件发送结果,这可能是因为:

  

emailOutputTo是命令和exec方法的专有内容。

逻辑:

$schedule->call(function () {
    printf("Performing Purge... \n");
    printf("Purge completed! \n");
})->everyMinute()
  ->emailOutputTo('email@mail.com');

主题行始终为:

  

[]的计划作业输出

,关于如何自定义电子邮件主题行尚不清楚或没有记录。

2 个答案:

答案 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