2

私は自分のSMTPサーバーを作成しているプロジェクトに取り組んでいます。これはほとんど機能していますが、少し問題があります。

開発マシンでSMTPサーバーを実行し、ローカルコンピューターからローカルのsmtpサーバーに電子メールまたはtelnetを送信するphpスクリプトがある場合、プログラムは正常に機能し、プログラムはSMTPメッセージを受信し、関連する応答を送信します。

次に、プログラムをサーバーにコピーしてsmtpサーバーを実行し、サーバーからローカルのsmtpサーバーにtelnetで接続すると、動作しますtelnet localhost 25

次に、同じネットワーク上のリモートPCを介してSMTPサーバーに接続しようとすると、そこにtelnetで接続しようとするとConnecting to 192.168.1.74 (this is the address of the server)...could not open connection to the host, on port 25: connect failed、phpスクリプトを実行するhttp://192.168.1.74/send-mail.phpと失敗します。

ソケットをバインドするときのSMTPサーバーコードで、ポート25で127.0.0.1と192.168.1.74にバインドしようとしましたが、違いはありません。

サーバーに接続しているリモートPCからは機能しないのに、ローカルでは正常に機能するのはなぜですか。

あなたが提供できるどんな助けにも感謝します。

4

2 に答える 2

1

ここでカップルが暗闇の中で刺しますが、:

  1. サーバーでファイアウォールが実行されていますか?もしそうなら、あなたはポート25のために適切な例外を作りましたか?

  2. リモートPCは本当に同じネットワーク(つまり同じサブネット)上にありますか?間にルーターがある場合は、ポートを適切に転送する必要があります。

于 2012-07-14T16:12:11.813 に答える
1

ネットワークカードを静的に設定したとき、デフォルトゲートウェイを追加するのを忘れてしまいました。これで、期待どおりに機能するようになりました。

あなたの助けと提案をみんなに感謝します。

于 2012-07-14T20:32:04.673 に答える