smtpClient" System.IO.IOException:无法从传输连接读取数据:现有连接被远程主机强行关闭"

时间:2016-10-10 08:23:19

标签: c# web-services email smtpclient

我尝试使用pineApp服务器从位于DMZ的Web服务发送电子邮件,该服务器假设将邮件移动到LAN内的Exchange服务器。 ASMX所在的IIS服务器在pineApp服务器上定义为中继。

我正在

  

远程主机强行关闭现有连接

我不知道为什么。如果我从局域网内部进行测试并直接调用交换机,它可以正常工作。

这是我使用的代码:

 MailMessage mailMessage = new MailMessage();
                mailMessage.From = new MailAddress("mail@stam.co.il");
                MailAddress mailMessageTo = new MailAddress(Recipients);
                mailMessage.To.Add(mailMessageTo);
                mailMessage.Subject = Subject;
                mailMessage.Body = Body;
                mailMessage.IsBodyHtml = true;
                SmtpClient smtpClient = new SmtpClient(SmtpClientName,25);
                smtpClient.EnableSsl = false;
                smtpClient.UseDefaultCredentials = false;
                smtpClient.Send(mailMessage);

我希望我包含所有信息。

1 个答案:

答案 0 :(得分:0)

可能导致此问题的原因是: 发送电子邮件。等待很长时间,例如10分钟。使用相同的连接发送另一封邮件。 在这种情况下,您的.net客户端认为连接仍处于打开状态。 但是,SMTP服务器终止了服务器端的连接。

我们对此做了什么: 如果innerexception是IOException,我们处理SmtpClient对象,创建一个新对象并重试发送电子邮件