我开发了一个自定义类,它使用 MailKit 和 MimeKit 与 IMAP4 邮件服务器进行交互。它就像一种魅力,但我最近注意到一些让我感到有点不舒服的事情:
看起来如果你具体一个存在但没有邮件服务器的主机,它会尝试连接大约 30 秒,最后抛出一个异常,这里引用了。感觉就像它正在尝试搜索邮件服务器,但由于没有人回复它,它有点“丢失”。
我将Timeout
属性设置为,5000ms
但看起来它只是在连接后才应用。
问题是......有没有办法通过.NET本身在一个高级“层”中控制它,或者这应该被视为MailKit错误吗?
呼叫连接:
imap.ServerCertificateValidationCallback = (s, c, h, e) => true;
imap.Connect(hostname, puerto, SecureSocketOptions.SslOnConnect);
imap.Authenticate(username, password);
异常堆栈跟踪:
en System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
en System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
en System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
en MailKit.Net.Imap.ImapClient.Connect(String host, Int32 port, SecureSocketOptions options, CancellationToken cancellationToken)
en Utilities.Imap4.Imap.Connect(String hostname, String username, String password, ConnectionType secure, Int32 port) en xxxx\Imap4\Imap4\Imap4.cs:línea 121