突然PHP错误“警告:imap_open()[function.imap-open]:无法打开流”

时间:2013-09-07 20:45:52

标签: php imap

好吧,这段代码''工作得很好然后我开始玩它,以便让其他人连接到他们的电子邮件,因为你因为各种拼写错误而遇到了一些开放流错误这样

因为这样做,突然间我根本无法连接到我的电子邮件?不久之后,我使用完全相同的连接代码,然后浏览我的收件箱。

我总是得到“警告:imap_open()[function.imap-open]:无法打开流”错误。

这很奇怪,因为我使用与以前完全相同的代码,但由于碰到错误,我现在无法连接。回应也需要很长时间。

以下是代码:

$mailbox = imap_open('{mail.artisancodesmith.com:143/notls}INBOX', 'admin@artisancodesmith.com', 'PASSWORD');

if ($mailbox) {
    $response = "MAIL MENU:<br>
        inbox: View your inbox.<br>
        compose: Compose an e-mail.<br>
        setup: Set your e-mail account's settings.";
    $next = "iorcmail";
}

注意:PHP页面连接到同一服务器上的电子邮件。

更新: 如果我用“localhost”替换“mail.artisancodesmith.com”,它会再次运行! 我最好喜欢使用我的实际IMAP主机 - 我会在将来的某个时间看看它是否会再次起作用。 感谢所有帮助过的人。 :)

5 个答案:

答案 0 :(得分:4)

请使用以下代码成功连接,

$hostname = "{imap.gmail.com:993/imap/ssl/novalidate-cert}";

$mailbox = imap_open($hostname, 'admin@artisancodesmith.com', 'PASSWORD');

if ($mailbox) 
{
    // do work....
}

答案 1 :(得分:1)

我遇到了这个问题,这就是我解决它的方法;

之后,上面的代码对我有用....

答案 2 :(得分:1)

我试过这个对我来说非常好的作品

$inbox = imap_open("{imap.gmail.com:993/imap/ssl/novalidate-cert/norsh}Inbox", 'username', 'password')
             or die('Cannot connect to Gmail: ' . imap_last_error());

$emails = imap_search($inbox,'All');
if($emails) {
    /* begin output var */
    $output = '';
    /* put the newest emails on top */
    rsort($emails);
    /* for every email... */
    foreach($emails as $email_number) {
        /* get information specific to this email */
        $overview = imap_fetch_overview($inbox,$email_number,0);
        $message = imap_fetchbody($inbox,$email_number,2);
        $header =  imap_header($inbox, $email_number); 
        echo "<h1>data</h1>";
        echo "<pre>";print_r($message);
        echo "<h1>Message</h1>";
        echo "<pre>";print_r($message);
        echo "<h1>header</h1>";
        echo "<pre>";print_r($message);
        $overview[0]->seen;
        $overview[0]->subject;
        $overview[0]->from;
        $overview[0]->date;

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

答案 3 :(得分:0)

也许你是代理人的背后?如果是这样,我想你需要对它进行认证......

答案 4 :(得分:0)

resource imap_open(
    string $mailbox , 
    string $username , 
    string $password [, 
    int $options = 0 [, 
    int $n_retries = 0 [,  
    array $params = NULL ]]] 
)