我对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}”,“用户名”,“密码”)和收件箱打开正常,同样似乎适用于雅虎。但由于某些原因,我在连接到outlook.com或icloud.com电子邮件时遇到错误。
imap_open(“{imap-mail.outlook.com:993/ssl/novalidate-cert}”,“用户名”,“密码”)获取错误imap_open():无法打开流
真正奇怪的是,当我运行单独的php脚本时,我手动在shell中进行测试,使用相同的参数连接到outlook.com电子邮件帐户,它运行正常。此外,当我通过Web浏览器通过apache访问此脚本时,它也可以工作。所以这不是apache执行php代码的问题。但为什么它在Yii中失败了?
$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证书}
/无功/网络/..../控制器/ RegisterController.php(102)
答案 0 :(得分:0)
尝试将其作为主机名
$hostname='{imap-mail.outlook.com:993/imap/ssl}INBOX';
并且您还预先检查了您的用户名