1

我想从前端运行控制台应用程序发送邮件功能。我尝试使用扩展程序,但它不起作用。

namespace console\controllers;

use Yii;

/**
 * Console controller
 */
class ConsoleController extends  \yii\console\Controller
{
   public function actionSendMail()
   {
        Yii::$app->mailer->compose()
                ->setFrom('test@test1.com')
                ->setTo('test@test2.com')
                ->setSubject('Message subject')
                ->setTextBody('Plain text content')
                ->setHtmlBody('<b>HTML content</b>')
                ->send();
   }
}

从命令行我可以使用yii console/send-mail,它工作正常。

但是如何在前端控制器中运行上述命令?

4

1 回答 1

1

不工作,因为https://github.com/vova07/yii2-console-runner-extension/blob/master/ConsoleRunner.php#L63 PHP_BINDIR在我的计算机值'C\php'。但在我的电脑中,PHP 没有安装在“C\php”目录中。您可以:

1) 创建 'C\php' 文件夹并放入php.exe该目录。

2)或添加PHP_BINDIR变量Environment variables(如何 - http://www.itechtalk.com/thread3595.html)并输入正确的路径php.exe。并重新启动计算机。

在我的计算机上,我运行第一步并运行Yii::$app->consoleRunner->run('hello/some-action')SiteControler它工作正常。

于 2015-03-13T11:52:57.833 回答