我正在尝试编写一些代码来检索使用pop3
托管在第三方电子邮件提供商托管的Mailkit (version 2.1.0.3)
邮箱中的电子邮件。尝试连接到邮件服务器时,连接每隔一次失败,并显示以下错误:
”尝试建立SSL或TLS时发生错误 连接。”
有内部例外情况
“身份验证失败,因为远程方已关闭传输流。”
因此,上面的第一次尝试代码成功,而第二次尝试失败,并出现上述错误。这确实发生了,并且在我第二次尝试时总是失败。这使我相信终止连接有问题。
这是我用来建立连接的代码。
using (var client = new Pop3Client())
{
await client.ConnectAsync("pop3.**.nl", 995, true); // FAILS HERE
await client.AuthenticateAsync("**username**", "**password**");
for (int i = 0; i < client.Count; i++)
{
...
}
await client.DeleteAllMessagesAsync();
await client.DisconnectAsync(true);
}
我已经尝试使用以下功能解决问题,但是这些功能都无济于事。但是,将SSL协议更改为版本SSL3和SSL2会导致该错误在每次尝试连接时出现,而不是在其他所有尝试时出现。
client.ServerCertificateValidationCallback += (e, r, t, y) => true;
client.SslProtocols = SslProtocols.Tls12;
client.CheckCertificateRevocation = false;