IMAP4メールサーバとやりとりするためにMailKitとMimeKitを使ったカスタムクラスを開発しました。それは魅力的なように働いていましたが、私は少し不快に感じるようなものについて最近気づいた:メールサーバを持っていないホスト名に接続しようとすると奇妙なタイムアウトが発生する
メールサーバが存在していてもメールサーバを持っていないホストを具体的に見れば、約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
返信いただきありがとうございます、Jeffrey!私はそれを試してみましょう! – Gonzo345