私はSMTPとgmailで電子メールを送信するためにPHPMailerを使用しようとしています。正確なスクリプトは他のサーバー上で動作していますが、この特定のホスティング会社のサーバーでは動作していません。ポート465と587がPHPで開いているかどうかを確認するにはどうすればよいですか?
私はphpinfo()
をチェックして、それがallow_url_fopen
がon
で、何disabled_functions
が記載されているfopen
のように存在しないことを私に伝えます。
スクリプトが失敗し、それはどちらか私に語った:
SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
か、他
SMTP Error: Could not authenticate.
ため、再びこの他のサーバー上の仕事と私は、それは接続できないためであると仮定しています認証資格情報が正しい。
私はより一般的に尋ねます。私はPHPまたはjailshell ssh
を使用して、ポートが実際に開いているかどうかを確認し、確認できますか?
+1これは、PHPMailerがSMTPサーバーへの接続に使用するのと同じ方法です(タイムアウトが長くて再試行が必要な場合を除く)。 – webbiedave
ありがとうございます。私はまた、ポートが開いているにもかかわらず、中継が無効になることがあることを学びました。 PHPでそれをチェックする方法はありますか? – cwd
@cwd:適切なSMTPコマンドを送信し、 'fsockopen 'によって返されたハンドルに' fwrite'と 'fread'を使って応答をチェックする必要があります。 – netcoder