繁体   English   中英

如何检查端口465和587是否使用PHP打开?

[英]How can I check if ports 465 and 587 are open with PHP?

我正在尝试使用PHPMailer发送带有SMTP和Gmail的电子邮件。 我使用的确切脚本适用于其他服务器,但它不能在这个特定的托管公司的服务器上运行。

我检查了phpinfo() ,它告诉我allow_url_fopenon ,并且没有像fopen列出的disabled_functions

脚本失败,它告诉我:

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

要不然

SMTP Error: Could not authenticate.

我假设这是因为它无法连接,因为这在其他服务器上的工作和身份验证凭据是正确的。

所以我更普遍地问,有没有办法可以使用PHP或jailshell ssh检查并查看端口是否实际打开?

您可以使用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服务器,以防止垃圾邮件发送者转发垃圾邮件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM