邮件发送失败。无法将数据写入传输连接

时间:2011-04-26 13:58:41

标签: .net smtp

我正在使用Gmail SMTP服务器从VB.Net发送邮件。虽然它可以发送一些电子邮件,但对于其他一些电子邮件,它会返回以下错误:

  

发送邮件失败。无法将数据写入传输连接System.Net.Sockets.SocketException:已建立的连接已被主机中的软件中止

2 个答案:

答案 0 :(得分:18)

我最近遇到了同样的问题,SmtpClient.SendMail(MailMessage)被重复使用,附带350k附件的电子邮件。每33条消息,您发出的错误都会发生。

当消息发送完毕时,我们的共享组件封装了SendMail功能,并没有在Dispose()类上调用SmtpClient

向SmtpClient实例添加client.Dispose()清除了问题,现在消息没问题 - 数百个(是的,它们是我们客户的合法产品通知,而非垃圾邮件);)

答案 1 :(得分:4)

根据我在网上看到的,与此异常相关的Winsock错误代码是 WSAECONNABORTED

您可以在此地址阅读更多相关信息,以获得解释:WSAECONNABORTED

基本上,这意味着服务器在您的应用程序尝试发送大型电子邮件时关闭了连接。

也许您应该查看Gmail文档,看看它是否对邮件大小或发送的邮件总数有一些限制。看起来你在插座上抽了太多数据。