簡體   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