MailKit:使用Client.Disconnect(...)

时间:2019-01-07 21:53:45

标签: mailkit

我最近在我们的项目中使用Mailkit lib来替换.NET SmtpClient。 我们有2个业务案例,可使用SmtpClient发送电子邮件。 在一种情况下,我们使用SmtpClient在单独的进程中发送排队的电子邮件,而在另一种情况下,我们立即发送电子邮件。 在实现过程中,我注意到我们必须调用Client实例的Disconnect方法。 mailClient.Disconnect(...); 不确定并且在文档中不清楚什么是调用此方法的最佳方法。 所以我的问题是,使用此方法的最佳实践是什么? 每条消息调用mailClient.Disconnect(true)还是mailClient.Disconnect(false)?

出于兴趣,如果我在using块内使用客户端,我是否需要在发送消息后显式调用Disconnect(...)?我认为当Dispose()被执行时,它隐式调用断开连接。 mailClient.Disconnect(...);

感谢您在这方面的反馈。

1 个答案:

答案 0 :(得分:2)

Dispose()方法仅在套接字连接仍处于活动状态时才会关闭(这实际上与调用Disconnect (false)相同)。

但是,调用Disconnect (true)更加礼貌,因为它向服务器发送了相应的LOGOUTQUIT命令,该命令允许服务器正确处理其资源。