1
我開發了一個使用MailKit和MimeKit與IMAP4郵件服務器交互的自定義類。它的工作就像一個魅力,但我最近注意到的東西,讓我感到有點不舒服:試圖連接到一個沒有任何郵件服務器的主機名時奇怪的超時行爲
看起來像是如果你具體的主機存在,但沒有郵件服務器,它試圖連接大約30秒,最後拋出一個異常,這是在這裏引用。這感覺就像是試圖尋找一個郵件服務器,但沒有人回覆它,它會變得有點「失落」。
我將Timeout
屬性設置爲5000ms
,但看起來它只適用於一次連接。
事情是......有沒有什麼辦法通過.NET本身來控制上層的「層」,或者這應該被認爲是MailKit的bug?
調用來連接:
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
謝謝你的回覆,Jeffrey!我會試一下! – Gonzo345