如何设置 ActionMailer 使用 TLS 连接所需的 SSL 协议?
How do I set the SSL protocol needed for ActionMailer to use a TLS connection?
我 运行 在尝试将校园的 SMTP 服务器与我的 Rails 5.x 应用程序一起使用时遇到问题。我收到以下错误:SSL_connect returned=1 errno=0 state=SSLv2/v3 read server 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 版本,我还需要 'openssl' 在我的 Gemfile 中,并且它安装了 openssl-2.1.2。
关于后续步骤的建议?
port: 587,
...
tls: true,
enable_starttls_auto: true
根据 the documentation ":ssl/:tls - 启用 SMTP 连接以使用 SMTP/TLS (SMTPS: SMTP over direct TLS 连接)”。但端口 587 不是用于直接 TLS,而是用于通过 STARTTLS 命令进行 TLS 升级。如果启用,直接 TLS 将在端口 465 上完成。
因此,您的客户端尝试使用 TLS 访问非 TLS 连接,这导致了这个奇怪的错误。另见 Perl 而不是 Ruby。
要解决此问题,请将端口 465 与 tls
(如果在服务器上启用)一起使用,或者使用端口 587 并依赖 enable_starttls_auto
稍后升级到 TLS。
我现在正在使用 Rails 和电子邮件做一些事情,并且由于文档中缺乏关于要求 STARTTLS 的方法的描述而感到不安。如果不将其作为一项要求,在 IMO 中几乎就等于没有。
所以我查看了资源。由于至少 Ruby 2.4,强制执行 STARTTLS 是 supported.
似乎可以在rails中启用,方法与启用enable_starttls_auto
相同,只需设置enable_starttls
即可。它没有记录,但似乎所有设置都传递给 Mail::SMTP
所以它支持的任何 hwatever 都可以传递。
更新:Rails 项目接受了我的文档更新 #44096。
我 运行 在尝试将校园的 SMTP 服务器与我的 Rails 5.x 应用程序一起使用时遇到问题。我收到以下错误:SSL_connect returned=1 errno=0 state=SSLv2/v3 read server 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 版本,我还需要 'openssl' 在我的 Gemfile 中,并且它安装了 openssl-2.1.2。
关于后续步骤的建议?
port: 587,
...
tls: true,
enable_starttls_auto: true
根据 the documentation ":ssl/:tls - 启用 SMTP 连接以使用 SMTP/TLS (SMTPS: SMTP over direct TLS 连接)”。但端口 587 不是用于直接 TLS,而是用于通过 STARTTLS 命令进行 TLS 升级。如果启用,直接 TLS 将在端口 465 上完成。
因此,您的客户端尝试使用 TLS 访问非 TLS 连接,这导致了这个奇怪的错误。另见
要解决此问题,请将端口 465 与 tls
(如果在服务器上启用)一起使用,或者使用端口 587 并依赖 enable_starttls_auto
稍后升级到 TLS。
我现在正在使用 Rails 和电子邮件做一些事情,并且由于文档中缺乏关于要求 STARTTLS 的方法的描述而感到不安。如果不将其作为一项要求,在 IMO 中几乎就等于没有。
所以我查看了资源。由于至少 Ruby 2.4,强制执行 STARTTLS 是 supported.
似乎可以在rails中启用,方法与启用enable_starttls_auto
相同,只需设置enable_starttls
即可。它没有记录,但似乎所有设置都传递给 Mail::SMTP
所以它支持的任何 hwatever 都可以传递。
更新:Rails 项目接受了我的文档更新 #44096。