如何检查,如果465端口,587是用PHP打开?(How can I check if ports

2019-07-28 22:24发布

我试图使用的PHPMailer发送电子邮件与SMTP和Gmail。 确切的剧本正在使用其他服务器上的作品,但它不工作这个特殊的托管公司的服务器上。

我已经检查了phpinfo() ,它告诉我说allow_url_fopenon ,也没有disabled_functions喜欢fopen上市。

该脚本失败,它告诉我可以:

SMTP -> ERROR: Failed to connect to server: Connection timed out (110) 

要不然

SMTP Error: Could not authenticate.

我猜想这是因为它无法连接,因为再在其他服务器和认证证书这项工作是正确的。

所以我问更普遍,是有办法,我可以使用PHP或jailshell ssh来检查,看看是否端口实际上开放与否?

Answer 1:

您可以检查与开放/可用端口fsockopen

$fp = fsockopen('127.0.0.1', 25, $errno, $errstr, 5);
if (!$fp) {
    // port is closed or blocked
} else {
    // port is open and available
    fclose($fp);
}

...其中5是以秒超时,直到调用失败。

这可能是由于您的托管服务提供商是从连接到出站插座和/或特定端口阻止你一个防火墙问题。 请记住,这是一个非常常用的安全配置,以阻止出站SMTP端口。 早在一天,只有端口25被封锁,但我开始看到越来越多的SSL变种被阻止为好。

大多数提供商和托管公司将只允许你连接到自己的SMTP服务器,以防止垃圾邮件制造者转发垃圾邮件。



文章来源: How can I check if ports 465 and 587 are open with PHP?