我最近在我们的项目中使用Mailkit lib来替换.NET SmtpClient。
我们有2个业务案例,可使用SmtpClient发送电子邮件。
在一种情况下,我们使用SmtpClient在单独的进程中发送排队的电子邮件,而在另一种情况下,我们立即发送电子邮件。
在实现过程中,我注意到我们必须调用Client实例的Disconnect方法。
不确定并且在文档中不清楚什么是调用此方法的最佳方法。
所以我的问题是,使用此方法的最佳实践是什么?
每条消息调用mailClient.Disconnect(true)还是mailClient.Disconnect(false)?mailClient.Disconnect(...);
出于兴趣,如果我在using块内使用客户端,我是否需要在发送消息后显式调用Disconnect(...)?我认为当Dispose()被执行时,它隐式调用断开连接。
mailClient.Disconnect(...);
感谢您在这方面的反馈。
答案 0 :(得分:2)
Dispose()
方法仅在套接字连接仍处于活动状态时才会关闭(这实际上与调用Disconnect (false)
相同)。
但是,调用Disconnect (true)
更加礼貌,因为它向服务器发送了相应的LOGOUT
或QUIT
命令,该命令允许服务器正确处理其资源。