Zend Imap: ‘fsockopen(): не удается подключиться к imap.mydomain.com: 143 (нет маршрута к хосту)’

#php #sockets #email #zend-framework #imap

#php #сокеты #Адрес электронной почты #zend-framework #imap

Вопрос:

Я пытаюсь использовать Zend framework для проверки учетной записи электронной почты imap. Поэтому я предоставляю хост (‘imap.mydomain.com ‘), порт (143), а также имя пользователя и пароль. Я точно знаю, что они верны, поскольку я проверил их с помощью Thunderbird. Затем я вставил их в функциональность Zend, но я получаю сообщение об ошибке:

 Fatal error:  Uncaught exception 'ErrorException' with message 'fsockopen(): unable to connect to imap.mydomain.com:143 (No route to host)' in /home/kramer65/my-project/external/zend/library/Zend/Mail/Protocol/Imap.php:90
Stack trace:
#0 [internal function]: ZendStdlibErrorHandler::addError(2, 'fsockopen(): un...', '/home/kramer65/my...', 90, Array)
#1 /home/kramer65/my-project/external/zend/library/Zend/Mail/Protocol/Imap.php(90): fsockopen('imap.mydomain.com', 143, 113, 'No route to hos...', 30)
#2 /home/kramer65/my-project/external/zend/library/Zend/Mail/Storage/Imap.php(203): ZendMailProtocolImap->connect('imap.mydomain.com', 143, false)
#3 /home/kramer65/my-project/communication/EmailBox.php(51): ZendMailStorageImap->__construct(Array)
#4 /home/kramer65/my-project/daemon/SupportEmail.php(59): my-projectcommon_libcommunicationEmailBox->__construct(2, Array)
#5 /home/kramer65/ in /home/kramer65/my-project/external/zend/library/Zend/Mail/Protocol/Imap.php on line 93
  

Строка 90 в Mail/Protocol/Imap.php читает:

 $this->socket = fsockopen($host, $port, $errno, $errstr, self::TIMEOUT_CONNECTION);
  

Итак, вот мои вопросы: что именно не так? Это то, что он не может найти imap.mydomain.com ? И если да, то почему нет? Как я смогу выяснить, почему он не может достичь этого домена, хотя моя установка thunderbird может? Или что-то еще не так? Я допустил ошибку? Короче говоря; как я могу это отладить?

Все советы приветствуются!

Комментарии:

1. Это связано с самим сервером, настройками DNS. Почему бы вам не попробовать использовать прямой IP, а не имя хоста?

2. Можете ли вы выполнить пинг imap.mydomain.com с компьютера, на котором выполняется код? Я сомневаюсь в этом.

3. Я мог пинговать почтовый сервер со своей машины разработки, но imap не работал. Оказывается, у почтового сервера были какие-то странные конфигурации iptables, и мне пришлось использовать TLS. Спасибо, что наставили меня на правильный путь!

4. Возможно, вы захотите добавить ответ на свой собственный вопрос и принять его, чтобы этот вопрос отображался как «закрытый».