2016-01-27 2 views
0

Может кто-нибудь сказать мне, если что-то не так со следующим кодом? Или если проблема не связана с кодом. Я, кажется, не могу подключиться к почтовому серверу и во время выполнения кода, который он отвечает с ошибкой Warning: imap_open(): Couldn't open stream {imap.one.com993}INBOX в моем файле класса. И Notice: Unknown: Host not found (#11001): imap.one.com993 (errflg=2) in Unknown on line 0 ниже предыдущей ошибки.Неправильная ли строка подключения PHP imap?

class email { 

    public $server; 
    public $username; 
    public $password; 
    public $port; 
    public $link; 
    public $status; 

function connect($host, $port, $login, $pass){ 

     $this->server = $host; 
     $this->username = $login; 

     $this->link = imap_open("{". $host . $port."}INBOX", $login, $pass); 
      if($this->link) { 
       $this->status = 'Connected'; 
     } else { 
      $this->error[] = imap_last_error(); 
      $this->status = 'Not connected'; 
     } 
    } 
} 

Индекс файла:

<?php 
    $email = new email(); 

    $email->connect("imap.one.com", "993", "[email protected]", "passwordString"); 
? 

ответ

2

Вам нужно двоеточие (:) между хостом и портом, потому что вы хотите, а не {imap.one.com:993}INBOX{imap.one.com993}INBOX. Исправить это можно так:

$this->link = imap_open("{". $host . ":" . $port."}INBOX", $login, $pass); 

См. the documentation for imap_open().

+0

Правильно .. не уверен, почему я этого не видел. Спасибо, теперь моя проблема: «Неустранимая ошибка: максимальное время выполнения 60 секунд превышено» и 'Примечание: Неизвестно: [ЗАКРЫТО] Соединение IMAP сломано (ответ сервера)' У вас есть идея, где я должен искать, чтобы исправить это? – Dennis1679

+0

@ Dennis1679 Трудно сказать. Возможно, вы используете плохое доменное имя или неправильный порт (зависит от конфигурации вашего почтового сервера), или может быть, что в почтовом ящике имеется огромное количество писем. Поскольку вы решили проблему, о которой вы впервые писали, вы должны принять ответ на этот вопрос. Затем задайте новый вопрос, используя кнопку «Спросить вопрос» в верхней части страницы. Вы можете связать этот вопрос, если он помогает обеспечить контекст. –

+0

Да, как-то есть время для принятия этого ответа. Поэтому я приму это через несколько минут. Я отправлю новый вопрос, как вы предложили. – Dennis1679

0

Вы пропустили двоеточие:

imap_open("{". $host .":". $port."}INBOX", $login, $pass); 

Без него, PHP думает, что хозяин "imap.one.com993", и что, очевидно, проваливает проверку DNS.

Смежные вопросы