【问题标题】:TIdSMTP : How to fix the error SSL negotiation FailedTIdSMTP:如何修复错误 SSL 协商失败
【发布时间】:2021-04-15 23:29:02
【问题描述】:

我使用 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 方法。

我应该如何使用这个特定的服务器来完成发送工作?

谢谢

【问题讨论】:

    标签: delphi ssl indy indy10


    【解决方案1】:

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

    【讨论】:

    • 谢谢 Remy,我不知道我可以启用多个版本!现在就试试看!
    猜你喜欢
    • 2017-07-13
    • 2011-05-27
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    相关资源
    最近更新 更多