Windows 中阻止传出的 SMTP 套接字连接

Windows 中阻止传出的 SMTP 套接字连接

我有一个私人电子邮件发送应用程序(Windows),它通过 SMTP 协议发送电子邮件通知。这可能看起来像一个代码问题堆栈溢出,但事实并非如此。该应用程序运行良好,其电子邮件发送功能也很好用。问题是,在某些系统中,特别是在我的 Windows 7 Ultimate 桌面系统上,传出连接被我很难识别的东西阻止了。

我看到的问题是,在建立连接后不久的某个时刻,套接字连接就被代码关闭了10053,也0x2745就是WSAECONNABORTED,即“主机中的软件中止了已建立的连接。”。在我的主机,这差不多是对的——远程服务器不是断开连接的根源。有时,在通道被来自上方的力量摧毁之前,应用程序仍有时间发送和接收 1-2 条消息。

我的第一反应是,这很简单,一定是防火墙或防病毒软件。这种软件只有内置防火墙和 Windows Defender。关闭防火墙没有用,Defender 并未设置为执行任何实时活动,只是按需运行。该机器不是域的一部分,而是纯粹的独立机器。

除此之外,我尝试通过 SSL 和 TLS 安全连接发送,但毫无用处。同时,我向 Google Mail 服务器发送邮件时没有遇到任何问题。我不知道是什么造成了这种差异,可能是 Google 服务器的 SSL 证书信誉良好,但这只是特殊情况。

问题是:假设活动是打开到远程 SMTP 服务器的套接字并执行邮件操作,Windows 中强制关闭此连接的原因可能是什么?是否有任何工具可以对此进行故障排除、查找原因并禁用它?

2013-08-08更新:

WireShark 显示以下 TCP 会话:

Wireshark 日志

答案1

使用 WireShark 等嗅探网络流量可以告诉你更多有关正在发生的事情的信息。

您是否知道 SMTP 对话框中断开连接的位置的详细信息?它是完全随机的,还是与任何 SMTP 命令有关联?我强烈怀疑您的代码中发生了一些意外情况,导致了问题。

相关内容