Ruby on rails 如何设置ActionMailer使用TLS连接所需的SSL协议?

Ruby on rails 如何设置ActionMailer使用TLS连接所需的SSL协议?,ruby-on-rails,ssl,actionmailer,Ruby On Rails,Ssl,Actionmailer,我尝试在Rails 5.x应用程序中使用校园的SMTP服务器时遇到问题。我收到以下错误:SSL_connect returned=1 errno=0 state=SSLv2/v3读取服务器hello A:未知协议 以下是我的配置: config.action_mailer.smtp_settings = { address: 'address.domain', port: 587, user_name:

我尝试在Rails 5.x应用程序中使用校园的SMTP服务器时遇到问题。我收到以下错误:SSL_connect returned=1 errno=0 state=SSLv2/v3读取服务器hello A:未知协议

以下是我的配置:

config.action_mailer.smtp_settings = {
    address:              'address.domain',
    port:                 587,
    user_name:            'UNAME',
    password:             'PWD',
    authentication:       :login,
    tls:                  true,
    enable_starttls_auto: true
  }
为了确保我使用的是最新的openssl版本,我在Gemfile中还需要“openssl”,并且它安装了openssl-2.1.2

关于下一步的建议

port:                 587,
...
tls:                  true,
enable_starttls_auto: true
根据“:ssl/:tls-启用SMTP连接以使用SMTP/tls(SMTPS:SMTP overdirecttls连接)”。但是端口587不是用于直接TLS,而是用于通过STARTTLS命令进行TLS升级。如果启用,直接TLS将在端口465上执行

因此,您的客户机尝试使用TLS访问非TLS连接,这会导致此奇怪的错误。另请参见Perl而非Ruby在何处发生了这种情况

要解决此问题,请将端口465与
tls
(如果在服务器上启用)一起使用,或使用端口587并依靠
enable\u starttls\u auto
,它将在以后升级到tls

根据“:ssl/:tls-启用SMTP连接以使用SMTP/tls(SMTPS:SMTP overdirecttls连接)”。但是端口587不是用于直接TLS,而是用于通过STARTTLS命令进行TLS升级。如果启用,直接TLS将在端口465上执行

因此,您的客户机尝试使用TLS访问非TLS连接,这会导致此奇怪的错误。另请参见Perl而非Ruby在何处发生了这种情况


要解决此问题,请将端口465与
tls
(如果在服务器上启用)一起使用,或使用端口587并依靠
enable\u starttls\u auto
,它将在以后升级到tls。

我已被告知它需要TLSv1.2或1.3I已被告知它需要TLSv1.2或1.3删除tls:true已像符咒一样修复它!非常感谢你!。删除tls:真的像一个符咒一样修复了它!非常感谢你!。