IMAP已启用,但功能未定义?

时间:2009-07-08 08:52:28

标签: php imap

我们的一个电子邮件解析脚本在使用imap函数时出现问题:

  

致命错误:调用未定义   函数imap_open()

IMAP肯定是启用的,它是用PHP编译的,并且在phpinfo()中显示,并且在执行get_loaded_extensions()extension_loaded("imap")时是否有任何理由可能无法访问这些功能?

IMAP版本是2007e,PHP是5.3。

编辑1:这是在mac服务器(OSX 10.5.7)上运行使用imap函数的脚本在/ var / *** /我尝试将测试文件放在/ Library / WebServer / Document(web)中root)使用具有完全相同细节的imap_open似乎可以工作。

在PHP更新之前它的设置方式有效 - 它是否有理由停止工作?我知道我可以将电子邮件脚本移动到webserver文档目录中,但我也想知道它为什么会以之前的方式停止工作 - 这可能是php配置的方式吗?

1 个答案:

答案 0 :(得分:3)

使用

echo get_cfg_var('cfg_file_path');

你可以找到这个php实例使用的php.ini。您可能会看到php apache-module(或者它是php-cgi?)和php cli版本(由您的cronjob使用)使用的是不同的.ini文件。
根据你安装php的方式(以及如何编译这个版本的php),apache模块也可能会解析你的cli版本没有的其他.ini文件。要检查是否是这种情况,请运行

<?php phpinfo(); ?>

在您的网络服务器中查找“已解析的其他.ini文件”条目 在任何情况下,您都必须注意cli版本使用的配置包括extension = php_imap ...指令。