【问题标题】:Exchange MailKit reacts slowlyExchange MailKit 反应缓慢
【发布时间】:2016-05-13 20:06:15
【问题描述】:

当我在 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,如下所示:

  1. 使用 NullProtocolLogger() 作为参数创建新的 ImapClient。
  2. 使用(用户名、密码、假)参数调用此客户端的 .Connect()。
  3. 使用新的 NetworkCredentials 调用此客户端的 .Authenticate()。
  4. 获取收件箱文件夹并接收我正在寻找的邮件。
  5. 调用此客户端的.Disconnect(true)。

我不明白为什么 Exchange 服务器偶尔会偶然发现“starttls”和“capability”之间的相同顺序。

有什么想法吗?是 Exchange 服务器的问题,还是 MailKit 的问题??

【问题讨论】:

    标签: c# exchange-server mailkit


    【解决方案1】:

    这是 Exchange 服务器的问题。很可能服务器因来自其他客户端或其他原因的请求而过载。

    【讨论】:

    • 这正是我所害怕的。问题是 Exchange Throttleling 策略已经最大化。此问题是否有任何已知的解决方法?当 connect() 有 false 作为参数时,为什么 starttls 会显示??
    • 您使用的 Connect() 方法有一个 bool 参数来指定它是否应该使用 ssl 包装的连接,它没有说明它是否应该使用 STARTTLS。如果您需要明文连接,请使用Connect (host, port, SecureSocketOptions.None);
    • 所以只是为了确保,如果我使用 Connect (host, port, SecureSocketOptions.None);这会阻止 STARTTLS 部分吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2017-12-18
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    相关资源
    最近更新 更多