Php 拉维尔工匠事务所;imap_open()
目前正在经历一个奇怪的错误或我可能正在监督的事情。(拉威尔框架) 我有一个普通的家庭控制器,在那里我成功地进行了imap_open()连接。(我可以使用浏览器读取整个邮箱) 但一旦我将此函数传输到artisan命令,它将返回我:Php 拉维尔工匠事务所;imap_open(),php,laravel,email,imap,Php,Laravel,Email,Imap,目前正在经历一个奇怪的错误或我可能正在监督的事情。(拉威尔框架) 我有一个普通的家庭控制器,在那里我成功地进行了imap_open()连接。(我可以使用浏览器读取整个邮箱) 但一旦我将此函数传输到artisan命令,它将返回我: [Symfony\Component\Debug\Exception\FatalThrowableError] Call to undefined function App\Console\Commands\imap_open() 我遗漏了什么,或者这是完全不可能的?
[Symfony\Component\Debug\Exception\FatalThrowableError]
Call to undefined function App\Console\Commands\imap_open()
我遗漏了什么,或者这是完全不可能的?您试图通过
Artisan
调用它,但是您需要添加Artisan
函数,因为Artisan
不知道您想要做什么,请查看文档部分编写命令
现在,您正在调用未知的
Artisan
函数,这就是为什么您得到这个您的代码当前位于App\Console\Command命名空间中
因为您在调用imap\U open函数时没有指定名称空间,所以它正在查找App\Console\Command\imap\U open函数,但找不到它
因为它是一个默认的php函数,所以这里的关键是使用\
所以一定要这样称呼它:
$res = \imap_open(...params);
另外,请确保已为php cli编译/启用imap(因为cli的php.ini与web cli不同)如上所述,
App\Console\Commands
中缺少该函数,如果添加正确,请使用该代码编辑帖子。imap\u open()是php中的默认函数(这在我的安装中启用,因为相同的代码在浏览器中工作):我确实尝试了这一点,但这导致了对未定义函数imap_open()的:[Symfony\Component\Debug\Exception\FatalThrowableError]调用控制器在web上下文中运行,Artisan命令在cli上下文中运行。两者的php.ini不相同。能否检查是否为php cli启用了imap扩展?是否有快速解决方案来检查此问题?查找php cli使用的php.ini(取决于您的设置),然后检查扩展行没有被注释掉。谢谢,我用IMAP编译PHP的方法解决了这个问题: