错误:无法从传输连接net_io_connectionclosed读取数据

时间:2016-08-01 06:48:43

标签: c#

我正在使用mandrill发送邮件,但是当我尝试发送邮件时,错误"无法从传输连接net_io_connectionclosed"中读取数据。偶尔会出现错误。

1 个答案:

答案 0 :(得分:1)

尝试端口 587 而不是 465 。端口 465 在技术上已被弃用。

.NET SmtpClient仅支持通过STARTTLS进行加密。如果设置了EnableSsl标志,则服务器必须使用STARTTLS响应EHLO,否则将引发异常。有关详细信息,请参阅MSDN文档。

其次,为将来偶然发现此问题的人提供快速的SMTP历史课程:

当天,当服务还希望提供加密时,他们会被分配一个不同的端口号,并且在该端口号上,他们立即启动了SSL连接。随着时间的推移,他们意识到为一项服务浪费两个端口号是愚蠢的,他们设计了一种服务方式,允许使用STARTTLS在同一端口上进行明文和加密。通信将以明文开始,然后使用STARTTLS命令升级到加密连接。 STARTTLS成为SMTP加密的标准。不幸的是,由于在实施新标准时总会发生这种情况,因此存在与所有客户端和服务器兼容的大杂烩。

在我的情况下,我的用户试图将软件连接到强制立即进行SSL连接的服务器,这是Microsoft在.NET中不支持的遗留方法。