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

问题描述 投票:0回答:1

我在尝试将我的园区的SMTP服务器与Rails 5.x应用程序一起使用时遇到问题。我收到以下错误:SSL_connect返回= 1 errno = 0状态= SSLv2 / v3读取服务器问候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.。

有关后续步骤的建议?

ruby-on-rails ssl actionmailer
1个回答
0
投票
port:                 587,
...
tls:                  true,
enable_starttls_auto: true

根据the documentation “:ssl /:tls-启用SMTP连接以使用SMTP / TLS(SMTPS:通过direct TLS连接的SMTP)”]。但是端口587不适用于直接TLS,而是用于通过STARTTLS命令进行的TLS升级。如果启用,则直接在端口465上完成直接TLS。

因此,您的客户端尝试使用TLS访问非TLS连接,这将导致此奇怪的错误。另请参见my explanation on a similar question,这是Perl而非Ruby发生的情况。

要解决该问题,请使用端口465和tls(如果在服务器上启用)或使用端口587并依靠enable_starttls_auto,它将在以后升级到TLS。

© www.soinside.com 2019 - 2024. All rights reserved.