我正在使用Yii框架进行网站开发。
我正在尝试制作电子邮件cron作业,因为我正在使用PHPMailer。
这是我的 config / console.php
> return array( > 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', > 'name'=>'My Console Application', > > // preloading 'log' component > 'preload'=>array('log'), > 'import'=>array( > 'application.modules.*', > 'application.extensions.*', > 'application.components.*', > 'application.models.*', > ), ....
我的命令/ testCommand.php
class UptimeCheckerCommand extends CConsoleCommand{ public function run($args) { .... $warning->send(); ....
我的组件/ Warning.php
.... require("/protected/extensions/PHPMailer/class.phpmailer.php"); ....
错误报告:
PHP Error[2]: require(/protected/extensions/PHPMailer/class.phpmailer.php): fail ed to open stream: No such file or directory
我已经使用控制器对组件进行了测试,它的工作原理非常好。只有在我尝试使用 yiic test 命令访问它时才会出现错误。
任何帮助将不胜感激
答案 0 :(得分:2)
'import'=>array(
...
'application.extensions.PHPMailer.*',
...
)
并将文件 class.phpmailer.php 重命名为 PHPMailer.php
导入目录不会导入其任何子目录。
答案 1 :(得分:1)
试试这样:
$mailer = Yii::import('application.extensions.phpmailer');
然后使用 $ mailer 发送电子邮件
答案 2 :(得分:1)
这是最合适的......在我看来......
Yii::import('application.extensions.phpmailer');
然后你可以用这种方式创建一个对象并做必要的事情。
$mail = new PHPMailer();
答案 3 :(得分:0)
感谢您的快速回复。
我已经尝试过上面的一些建议。
来自 Andrey Shatilov 的建议不起作用。
建议 usman allam 和 mazraara 改变:
需要( “/保护/扩展/ PHPMailer的/ class.phpmailer.php”);
带
的Yii ::进口( 'application.extensions.PHPMailer.class.phpmailer.php');
无法正常工作,因为文件名中有点(class.phpmailer.php)
因为它,yii认为我在类文件夹中请求phpmailer.php而不是class.phpmailer.php
有效的代码:
<强>需要( “../保护/扩展/ PHPMailer的/ class.phpmailer.php”); 强>
不知道为什么会这样,因为/protected/command/testCommand.php中的testCommand.php和/ protected / extensions / PHPMailer /中的phpmailer文件,但是它可以工作。