web-dev-qa-db-ja.com

Windowsで送信SMTPソケット接続をブロックしました

SMTPプロトコルを介して電子メール通知を送信するプライベート電子メール送信アプリケーション(Windows)があります。これはStackOverflowのコードの質問のように見えるかもしれませんが、そうではありません。アプリケーションは正常に動作し、その電子メール送信機能はうまく機能します。問題は、一部のシステム、特にWindows 7 Ultimateデスクトップシステムでは、識別が困難なものによって発信接続がブロックされていることです。

私が見ている問題は、接続を確立してからすぐに、ソケット接続がコード10053、つまり0x2745、つまり WSAECONNABORTED /で閉じられることです。 、これは「確立された接続がホストマシンのソフトウェアによって中止されました。」です。 私のホストマシンでは、これはほぼ正しいです-リモートサーバーは切断の原因ではありません。時々、アプリケーションは、チャネルが上からの電力によって忠実に破壊される前に、受信1〜2メッセージを送信する時間がまだあります。

私の最初の推測は、それは単純であり、ファイアウォールまたはアンチウイルスでなければならないということでした。この種のソフトウェアには、ファイアウォールとWindowsDefenderが組み込まれているだけです。ファイアウォールをオフにすることは役に立ちません。Defenderはリアルタイムのアクティビティを実行するように設定されておらず、オンデマンドで実行されるだけです。マシンはドメインなどの一部ではありません-純粋なスタンドアロンです。

これに加えて、SSLとTLSの安全な接続を介して送信しようとしましたが、役に立ちません。同時に、GoogleMailサーバーへの送信に問題はありません。何がそのような違いを生むのかわかりません。それは良好な状態のGoogleサーバーからのSSL証明書である可能性がありますが、それは特定の場合にすぎません。

質問は次のとおりです。アクティビティがリモートSMTPサーバーへのソケットを開き、メールを実行することである場合、Windowsでこの接続を強制的に閉じる原因は何でしょうか。これをトラブルシューティングし、原因を見つけて無効にするためのツールはありますか?

2013-08-08更新:

WireSharkは次のTCPセッション:

Wireshark Log

2
Roman R.

たとえば、ネットワークトラフィックをスニッフィングします。 WireSharkは、何が起こっているかについてさらに多くのことを教えてくれます。

SMTPダイアログのどこで切断が発生するかについての詳細はありますか?それは完全にランダムですか、それともSMTPコマンドと何らかの相関関係がありますか?コードに予期しないことが起こって問題が発生しているのではないかと強く思います。

1
krisku