Проблема PHP в функции fsockopen () - PullRequest
0 голосов
/ 09 декабря 2010

Привет:)
У меня проблема с функцией PHP. Я не могу понять, почему это не может работать, и это проблема для моего проекта.

Контекст:
У меня есть Joomla и я хочу, чтобы он отправлял электронную почту через опцию «SMTP сервер» Это не работает, и возвращается «Не удается подключиться к узлу smtp».
Я искал в Google эту проблему, и все найденные решения не помогли мне. Поэтому я решил пойти в код, чтобы увидеть, что случилось. Проблема возникает, когда код вызывает метод "fsockopen ()", встроенный в метод PHP. Этот метод говорит, что тайм-аут соединения с хостом.
Где это становится смешным: я могу подключаться и отправлять электронную почту с этим хостом с точно такими же параметрами с помощью почтового клиента (Evolution), на той же машине (так что это не проблема открытого порта или чего-то еще).

Метод:

<code>fsockopen($host, $port, $errno, $errstr, $tval);  

Использованные параметры и возвращенная ошибка:

<code>$host : ssl://smtp.laposte.net. 
$port : 25
$errno : 110
$errstr : Connection timed out
$tval : 10

Некоторая техническая информация:
Версия PHP: 5.2.14
Поддержка сокетов: включено
ОС: Ubuntu 10.10 под виртуальной машиной (VMWare)
Порт: порт 25 (smtp) открыт на виртуальной машине И на хосте виртуальной машины.

Если у кого-то было представление о том, как работает эта функция и почему она не может подключиться, это мне очень поможет,
Заранее спасибо,
Дэмиен

1 Ответ

1 голос
/ 09 декабря 2010

Я вижу, что вы используете ssl ... у вас есть включенный OpenSSL в php.ini?

Если установлена ​​поддержка OpenSSL, вы можете добавить к имени хоста префикс ssl: // или tls: //, чтобы использовать соединение клиента SSL или TLS через TCP / IP для подключения к удаленному хосту.

http://php.net/manual/en/function.fsockopen.php

...