MailKit ConnectAsync 在没有互联网连接的情况下冻结

MailKit ConnectAsync freezes without internet connection

我对 MailKit 有点厌倦,但如果尝试在没有互联网连接(拔出/插入)的情况下连接 ImapClient.ConnectAsync(...),则 ConnectAsync 会冻结。

我正在尝试以下示例 - ImapIdleExample: https://github.com/jstedfast/MailKit/blob/master/Documentation/Examples/ImapIdleExample.cs

在第 103 行 async Task WaitForNewMessagesAsync () 九分钟内我关闭了我的互联网连接,九分钟后我得到一个 IOException(总是导致客户端断开连接)。

第64行async Task ReconnectAsync ()客户端未连接client.IsConnected为false,执行下面一行,第67行await client.ConnectAsync (host, port, sslOptions, cancel.Token)

就是这样,没有其他事情发生。此外,当我重新连接到互联网时,ConnectAsync 仍然冻结。

我正在连接端口 993 和 SecureSocketOptions SslOnConnect。 ImapClient.Timeout值为120000,也是过了这个时间,还是冻结。是否还有另一个超时或其他原因?

现有的互联网连接一切正常。

ImapIdleExample 中的示例运行良好,但如果我断开计算机与 Internet 的连接,则会出现未处理的异常:

System.Net.Sockets.SocketException with SocketErrorCode = HostNotFound

我更新了 async Task WaitForNewMessagesAsync ()async Task FetchMessageSummariesAsync (bool print) 中的 catch 块:

catch (Exception exception)
{
    await Task.Delay(new TimeSpan(0, 1, 0), CancelToken.Token);
    await ReconnectAsync();
}