运行 yii2 脚本使用任务调度器

Running yii2 script using task scheduler

我想 运行 我在 yii2 中的操作方法自动高级。我把代码放在console/controllers。这是代码:

MailController.php

<?php

namespace console\controllers;

use Yii;
use yii\console\Controller;
use Swift_TransportException;

class MailController extends Controller
{
    public function actionSend()
    {
        $mail = Yii::$app->mailer->compose()
            ->setFrom('if414024@students.del.ac.id')
            ->setTo('if414024@students.del.ac.id')
            ->setSubject('Testing');
        try
        {
            $mail->send();
        }
        catch (Swift_TransportException $ste)
        {
            echo 'error';
        }
    }
}

?>

然后我从任务计划程序的操作菜单中进行此配置:

Program/script: C:\xampp\php\php.exe

添加参数(可选):-f C:\xampp\htdocs\Baru\advanced\console\controllers\MailController.php

我想运行发送操作。但任务调度程序的结果是 0xFF,我没有收到电子邮件。有什么问题?

您需要这样调用控制器操作:

C:\xampp\php\php.exe c:\path\to\your\application\yii mail/send

c:\path\to\your\application\yii.bat mail/send

您正在调用 yii,而不是直接调用控制器脚本。控制器和动作(路由)只是一个参数。

有关详细信息,请参阅 here or the guide