【问题标题】:imap_open(): Couldn't open stream in Yii controllerimap_open():无法在 Yii 控制器中打开流
【发布时间】:2014-04-16 08:13:56
【问题描述】:

我对 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(): 无法打开流

真正奇怪的是,当我运行我在 shell 中手动创建的单独的 php 脚本以使用相同的参数进行测试以连接到 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-cert}

/var/www/..../controllers/RegisterController.php(102)

【问题讨论】:

    标签: php email yii


    【解决方案1】:

    试试这个作为主机名

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

    您还预先检查了您的用户名

    【讨论】:

      猜你喜欢
      • 2015-10-03
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 2019-09-25
      • 2014-05-12
      • 2013-10-07
      • 1970-01-01
      • 2021-03-27
      相关资源
      最近更新 更多