微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/csharp/100033.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐