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

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

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

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

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

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

@H_404_2@更新

@H_404_2@我正在使用System.Net.Mail

@H_404_2@MailMessage msg = new MailMessage();

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

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

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

解决方法

System.Net.Mail.SmtpClient实现了IDisposable,因此我建议您使用它而不是您当前使用的任何代码.使用 using块确保正确处理. @H_404_2@请特别注意,不推荐使用System.Web.Mail,而是使用System.Net.Mail.

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

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

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

@H_404_2@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#相关文章