fsockopen заблокирован на портах 25 и 587

У меня есть очень простой фрагмент кода, который подключается к SMTP-серверу с помощью fsockopen (или, альтернативно, stream_socket-client), который выглядит так:

<?php
$url = gethostbyname("mx6.go2.pl");
echo $url;
$fp = fsockopen($url, 587, $errno, $errstr, 10);
if (!$fp) {
echo "port is closed or blocked"
} else {
echo "port is open and available";
fclose($fp);
}
?>

К сожалению, я не могу подключиться ни к одному из стандартных портов, таких как 25 587 или 2525, потому что оба моих хост-провайдера блокируют любые исходящие соединения, использующие эти порты. (Я могу подключиться только к внутреннему SMTP-серверу или локальному хосту через 25 или 587)

Есть ли способ обойти эту проблему, используя другой код или порты (я имею в виду программно, а не что-то вроде установки моего собственного сервера).

Ваше здоровье,

Марчин


person Marcin Debski    schedule 17.10.2012    source источник
comment
Если вы найдете хак, дайте мне знать!   -  person JvdBerg    schedule 17.10.2012
comment
Связанный вопрос: порт ОТКРЫТ с сервера, но заблокирован при использовании fsockopen stackoverflow.com/questions/32827193/   -  person William Entriken    schedule 29.09.2015


Ответы (1)


Если ваш провайдер блокирует эти исходящие порты, вы ничего не можете с этим поделать. Это стандартные порты SMTP, поэтому маловероятно, что SMTP-сервер принимает соединения через другие порты. Ваша единственная надежда — либо попросить своего провайдера разблокировать эти порты для вашей учетной записи, либо найти внешний прокси-сервер на основе HTTP для подключения к порту 80 (если ваш провайдер также не заблокирует этот исходящий порт).

Почему нельзя использовать внутренний SMTP-сервер провайдера? Это то, что вы должны делать. Пусть он ретранслирует ваши сообщения на другой SMTP-сервер для вас. В настоящее время все чаще и чаще SMTP-серверы блокируются для предотвращения рассылки спама и других злоупотреблений, поэтому вы, вероятно, столкнетесь с SMTP-серверами, которые не позволяют вам подключаться к ним напрямую, даже если вы можете получить доступ к их портам, потому что вы не являетесь поставщика в белом списке этого сервера.

person Remy Lebeau    schedule 17.10.2012