我想从前端运行控制台应用程序发送邮件功能。我尝试使用this扩展程序,但它无效。
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
,它可以正常工作。
但是如何在前端控制器中运行上述命令?
答案 0 :(得分: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
,这样就可以了。