尝试使用C#发送邮件时收到SMTP异常

时间:2015-03-09 19:08:03

标签: c# exchange-server

我们在尝试使用C#发送邮件时经常收到SMTP 4.4.1连接超时异常。到目前为止,我们没有找到问题何时发生的模式,例如一天中的时间。

抛出的异常是:

  

System.Net.Mail.SmtpException:服务不可用,关闭传输通道。服务器响应为:4.4.1连接超时

任何时候最多可发送30封电子邮件,并且10次中的9次都会成功发送。当我们遇到4.4.1例外时,会发送一些电子邮件,而剩下的1或2则不会。

不幸的是,我无法访问客户端Exchange服务器,只能访问运行我们的应用程序的应用程序服务器。所以我就此与主持人合作。已在应用程序服务器上检查事件日志,唯一发现的是来自源McLogEvent的以下警告:

  

将被端口阻止规则阻止(规则处于仅警告模式)(防病毒标准保护:防止群发邮件蠕虫发送邮件)。

有没有人在遇到这个问题之前或者知道可能的原因?

2 个答案:

答案 0 :(得分:0)

没有发布任何代码,有点难以调试。你有没有看过这个类似的SO问题?

Sending 2000 emails

我发现了几个有类似错误的SO问题。我的猜测是你的服务器试图一次发送太多的电子邮件和连接炸弹。尝试一次送少数;从一开始,按照你的方式工作到30,看看是否有效。这是我的谷歌搜索:

https://www.google.com/search?q=The+server+response+was%3A+4.4.1+Connection+timed+out&rlz=1C1CHFX_en__601US628&oq=The+server+response+was%3A+4.4.1+Connection+timed+out&aqs=chrome..69i57j69i64&sourceid=chrome&es_sm=93&ie=UTF-8

答案 1 :(得分:0)

我遇到了类似的问题。我们会一次发送 1000 多封电子邮件,每批 50 封,它会每 10 分钟抛出“4.4.1 连接超时”SMTP 异常。问题原来是 SmtpClient 没有被正确处理。显然,如果您重新分配它,它不会发送“QUIT”SMTP 命令。

错误:

SmtpClient client = new SmtpClient();

对:

using (SmtpClient client = new SmtpClient())