Команда ping и SMTP не проходит через один и тот же порт; возможно, что один порт открыт, а не другой.
Если тайм-аут, это, вероятно, означает, что:
- либо ваш сервер SMTP не принимают соединения с сервером
- или есть что-то где-то (как брандмауэр), который блокирует ваши запросы.
Если у вас есть доступ по SSH к серверу, используя Telnet в командной строке, чтобы попытаться соединиться с сервером SMTP, а также отправлять команды SMTP, может позволить вам получить больше информации ...
Вот несколько ссылок, которые показывают примеры SMTP-сессии с помощью Telnet:
Если вы не можете подключиться к серверу, возможно, вы получите сообщение об ошибке (сообщите, что вам не разрешено подключаться, например), или он снова будет тайм-аут ... Что, вероятно, означает, что ваш запрос где-то заблокирован ...
В этом случае обратитесь к сетевому администратору; возможно, у него будет некоторое представление об открытии какого-либо порта на брандмауэре.
С каким сервером вы подключаетесь? Большинство интернет-провайдеров не разрешают исходящие порты 25 подключений к любому серверу, кроме своего собственного. Попробуйте изменить исходящий сервер на SMTP-сервер своего интернет-провайдера. – Craig
Можете ли вы использовать MUA (thunderbird/outlook/mail.app) для отправки электронных писем через него? – Shoan
У меня была эта проблема с 'fsockopen', где у хозяина было несколько IP-адресов. Я мог использовать telnet/swaks для одного и того же хоста без проблем, но fsockopen всегда был приурочен. Используя 'gethostfromname()', а затем напрямую используя IP, 'fsockopen' был намного счастливее и не успевал. Очень странно. – artfulrobot