当我在 Exchange 服务器上使用 MailKit 时,我从 Exchange 服务器日志中看到以下流程,显示 starttls 和功能之间的时间过长(大约 15 秒),有时这个相同的过程大约需要 20 毫秒,这是一个巨大的差异!
流程如下所示:
OpenSession
capability
starttls
capability
authenticate NTLM
capability
namespace
list "" "INBOX"
list "" Inbox
select INBOX
uid FETCH 22274 (BODY.PEEK[])
logout
在 MailKit 中,我每次都创建一个新的 ImapClient,如下所示:
- 使用 NullProtocolLogger() 作为参数创建新的 ImapClient。
- 使用(用户名、密码、假)参数调用此客户端的 .Connect()。
- 使用新的 NetworkCredentials 调用此客户端的 .Authenticate()。
- 获取收件箱文件夹并接收我正在寻找的邮件。
- 调用此客户端的 .Disconnect(true)。
我不明白为什么 Exchange 服务器偶尔会偶然发现“starttls”和“capability”之间的相同顺序。
有任何想法吗?是 Exchange 服务器问题,还是 MailKit 问题?