c# – 有没有办法关闭邮件smtp会话?

前端之家收集整理的这篇文章主要介绍了c# – 有没有办法关闭邮件smtp会话?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Gmail STMP服务器发送电子邮件.它工作得很好.但是从几天开始,它有时会停止工作.现在,它仅在10次中有5次工作.

例外:发送电子邮件失败

内部异常:无法连接到远程服务器.

在谈到托管技术支持后,他们说他们的服务器上有一个邮件会话限制.这是一个共享主机,所以当它超过所有新连接时都会阻塞.他们说他们正试图修复它.但也请说请检查您是否正确关闭邮件会话.

我调查了它,但没有Close()或Dispose().我还看到没有确认SMTP转移?

如果有关闭邮件会话,请告诉我?或解决此问题的任何解决方法.

更新

我正在使用System.Net.Mail

MailMessage msg = new MailMessage();

SmtpClient sc = new SmtpClient(“smtp.gmail.com”,587);

NetworkCredential info = new NetworkCredential(“email”,“password”);

然后还有另一个调用sc.Send()的方法.

解决方法

System.Net.Mail.SmtpClient实现了IDisposable,因此我建议您使用它而不是您当前使用的任何代码.使用 using块确保正确处理.

请特别注意,不推荐使用System.Web.Mail,而是使用System.Net.Mail.

using (SmtpClient client = new SmtpClient("mail.google.com")) 
{

}

编辑
您现在已经注意到您正在使用System.Net.Mail.在这种情况下,您会发现SMTPClient确实具有Dispose方法(因为它实现了IDisposable),它将正常关闭SMTP连接.但是,使用using块而不是直接调用Dispose被认为是更好的做法.最后,请从链接文档中注意以下内容

The SmtpClient class has no Finalize
method. So an application must call
Dispose to explicitly free up
resources.

The Dispose method iterates through all established connections to the SMTP server specified in the Host property and sends a QUIT message followed by gracefully ending the TCP connection. The Dispose method also releases the unmanaged resources used by the underlying Socket.

猜你在找的C#相关文章