尝试在CakePHP中获取Hotmail电子邮件时,IMAP无法打开

时间:2014-12-31 13:36:52

标签: php email cakephp imap

使用以下代码我试图从Hotmail中获取电子邮件。 在我的系统localhost上,这段代码工作正常,但在我的托管服务器上,这段代码无效。

在托管服务器上启用IMAP。

PHP Warning: imap_open(): Couldn't open stream {imap-mail.outlook.com:993/imap/ssl}INBOX

CakePHP控制器代码:

$username = 'myusername@hotmail.com';
    $password = 'myusernamepassword';
    set_time_limit(3000);

    /* try to connect */
    $inbox = imap_open('{imap-mail.outlook.com:993/imap/ssl}INBOX',$username,$password) or die('Cannot connect to Mail Server: ' . imap_last_error());

    /* grab emails */

    $emails = imap_search($inbox,'UNSEEN');

    /* if emails are returned, cycle through each... */
    if($emails) {
        /* begin output var */
        $output = '';
        /* put the newest emails on top */
        rsort($emails);
        /* for every email... */
        $count = 1;

        foreach($emails as $email_number) {
            $head = imap_header($inbox, $email_number);
            /* get information specific to this email */
            $overview = imap_fetch_overview($inbox,$email_number,0);
            $message = imap_body($inbox,$email_number,2);
            $subject = $this->decode_imap_text($overview[0]->subject);              


        }

        // echo $output;
    }

    /* close the connection */
    imap_close($inbox);

enter image description here

1 个答案:

答案 0 :(得分:4)

如果它在localhost上正常工作,则可能有端口993或者在防火墙等服务器上阻止了imap协议。(此错误的概率很高)

如果您有权访问托管服务器,请检查防火墙。否则联系托管管理员或寻找其他托管。

修改:通过imap_last_errorimap_errorsimap_alerts函数获取更详细的错误。