[英]How can I check if ports 465 and 587 are open with PHP?
我正在嘗試使用PHPMailer發送帶有SMTP和Gmail的電子郵件。 我使用的確切腳本適用於其他服務器,但它不能在這個特定的托管公司的服務器上運行。
我檢查了phpinfo()
,它告訴我allow_url_fopen
已on
,並且沒有像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.