微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TIdSMTP:如何修复错误 SSL 协商失败

如何解决TIdSMTP:如何修复错误 SSL 协商失败

我多年来一直使用 Indy 发送电子邮件,而且它一直运行良好。目前我使用的是 Delphi 10.4,以及它附带的 Indy 版本。

今天,当我尝试使用特定服务器时,即使一切都像往常一样设置,我还是收到了这些异常:

Project myproject.exe raised Exception class EIdOSSLUnderlyingCryptoError with message 'Error connecting with SSL. error 1409442E:SSL routines:SSL3_READ_BYTES:tslv1 alert protocol version

紧接着:

Project myproject.exe raised Exception EIdTLSClientTLSHandShakeFailed with message : 'SSL negotiation Failed'

端口是 587,到目前为止,我一直在 TIdSSLIOHandlerSocketopenSSL.SSLOptions.Method 上使用 sslvTLSv1 方法

我应该怎样尝试使用这个特定的服务器来获得发送工作?

谢谢

解决方法

很可能,有问题的服务器不允许使用 TLS 1.0,这是您启用的唯一版本。您应该使用 IOHandler 的 this.players 属性而不是其 SpecificPlayer 属性,然后将 SSLOptions.SSLVersions 设置为 SSLOptions.Method,以便客户端可以协商使用 TLS 1.0、1.1 或 1.2取决于服务器允许使用哪一种。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。