我正在尝试连接到我为自己设置的 gmx 帐户,但我什至无法通过连接阶段,更不用说身份验证阶段了。
这是代码,简短而贴心:
public ConnectPopClient(string host = "pop.gmx.com", int port = 995,
string username = "[email protected]", string password = "password")
{
using (Pop3Client pop = new Pop3Client(new ProtocolLogger("pop.log"){LogTimestamps = true}))
{
try
{
pop.Connect(host, port, SecureSocketOptions.None);
pop.Authenticate(username.Text, password.Password);
}
finally
{
if(pop.IsConnected)
pop.Disconnect(true);
}
}
}
很明显,我想要的只是代码连接、使用我的凭据登录和断开连接而不抛出任何异常。
日志仅包含以下内容:
2023-03-01T23:19:11Z 连接到 pop://pop.gmx.com:995/
我好像不能包含异常的文本,写得真好,但包含6点,我将在下面回复。
有关可能的解决方案,请参阅https://github.com/jstedfast/MailKit/blob/master/FAQ.md#SslHandshakeException。
所以这是我对这些观点的回应。
- 服务器正在使用无法验证的自签名证书。
也许?我正在使用 GMX,所以我认为它不会是自签名的。
- 本地系统缺少验证服务器证书所需的根证书或中间证书。
这似乎是最有可能的问题,但我该从哪里得到这个呢?我想我会查询服务器,获得公共证书然后安装它。我尝试使用 ServerCertificateValidationCallback 但它从未被调用过。
- 链中一个或多个证书的证书颁发机构 CRL 服务器暂时不可用
不太可能
- 服务器出示的证书过期或无效
也不太可能,我用的是GMX
- 客户端和服务器支持的 SSL/TLS 协议集不匹配。
可能,但我已经使用了 MailKit 支持的每一个,我得到了相同的结果
- 您正在尝试连接到不支持 SSL/TLS 的端口。
我可以通过 Thunderbird 连接到这个端口。我假设 Thunderbird 使用 TLS 连接,但我可能会感到惊讶。
这是我没有的东西:
异常消息:
POP3 服务器意外断开连接