加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:56:33 所属栏目:百科 来源:网络整理
导读:我正在使用Gmail STMP服务器发送电子邮件.它工作得很好.但是从几天开始,它有时会停止工作.现在,它仅在10次中有5次工作. 例外:发送电子邮件失败 内部异常:无法连接到远程服务器. 在谈到托管技术支持后,他们说他们的服务器上有一个邮件会话限制.这是一个共享
我正在使用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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读