imap_open():无法打开Yii控制器中的流


imap_open(): Couldn't open stream in Yii controller

我有一个非常奇怪的imap_open函数,它连接到一些服务器,但与一些服务器失败。在Yii控制器中我有

$inbox = imap_open("{".$model->incoming_hostname .":" .$model->incoming_port 
."/ssl/novalidate-cert}",$model->e_mail_username,$model->e_mail_password);

现在,当我提交参数连接到Gmail帐户时,我得到Imap_open ("{imap.gmail.com:993/ssl/novalidate-cert}", "username", "password")和收件箱打开良好,同样的似乎对雅虎工作。但是由于某些原因,我在连接outlook.com或icloud.com电子邮件时出现错误。

imap_open("{imap_mail.outlook.com:993/ssl/novalidate-cert}", "username", "password")获取错误imap_open(): cannot open stream

真正奇怪的是,当我运行单独的php脚本时,我手动在shell中进行测试,使用相同的参数连接到outlook.com电子邮件帐户,它工作正常。另外,当我通过web浏览器通过apache访问这个脚本时,它也可以工作。所以这不是apache执行php代码的问题。但为什么它会在ii期失败呢?

$hostname = '{imap-mail.outlook.com:993/ssl/novalidate-cert}';
$username = 'username';
$password = 'password';
/* try to connect */
$inbox = imap_open($hostname,$username,$password); 

有什么建议如何跟踪这个问题吗?在Yii中,我无法通过调用imap_last_error()看到可能出现的问题,因为Yii会立即显示警告

的错误页面
PHP警告

imap_open():无法打开流{: 993/ssl/novalidate-cert}

/var/www/…/控制器/RegisterController.php (102)

试试这个主机名

$hostname='{imap-mail.outlook.com:993/imap/ssl}INBOX';

还要预先检查用户名