fsockopen在端口25和587上被阻止

时间:2012-10-17 17:18:36

标签: php fsockopen blocked

我有一个非常简单的代码片段,它使用fsockopen(或者stream_socket-client)连接到SMTP服务器,如下所示:

<?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,因为我的两个主机提供商都阻止使用这些端口的任何出站连接。 (我只能通过25或587连接到内部SMTP服务器或localhost)

有没有办法绕过这个问题使用不同的代码或端口(我的意思是编程而不是安装我自己的服务器)。

干杯,

的Marcin

1 个答案:

答案 0 :(得分:1)

如果您的提供商阻止这些出站端口,那么您无能为力。这些是标准SMTP端口,因此SMTP服务器不太可能接受其他端口上的连接。您唯一的希望是要求您的提供商为您的帐户取消阻止这些端口,或者找到一个外部基于HTTP的代理服务器连接到端口80(除非您的提供商也阻止该出站端口)。

为什么不能使用提供商的内部SMTP服务器?这就是你应该做的。让它将您的邮件中继到其他SMTP服务器。现在越来越多的SMTP服务器被锁定以防止垃圾邮件和其他滥用,因此您可能会遇到SMTP服务器,即使您可以访问其端口也不允许您直接连接到它们,因为您不是该服务器白名单上的提供商。