【发布时间】:2017-07-22 14:00:21
【问题描述】:
- Rails 4.1.4
- 64 位 Amazon Linux 2016.09 v2.3.1 运行 Ruby 2.3 (Puma)
我正在尝试将 AWS SES(https://aws.amazon.com/ses/) 与使用弹性 Beanstalk 的 rails 应用程序设置一起使用。我的production.rb中有以下内容@
...
config.action_mailer.smtp_settings = {
address: 'email-smtp.us-east-1.amazonaws.com',
port: 587,
user_name: ENV['SES_SMTP_USERNAME'], # Your SMTP user
password: ENV['SES_SMTP_PASSWORD'], # Your SMTP password
authentication: :login,
enable_starttls_auto: true
}
...
但是当我尝试发送电子邮件时,我收到以下错误:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol
from /opt/rubies/ruby-2.3.1/lib/ruby/2.3.0/net/smtp.rb:587:in `connect'
from /opt/rubies/ruby-2.3.1/lib/ruby/2.3.0/net/smtp.rb:587:in `tlsconnect'
from /opt/rubies/ruby-2.3.1/lib/ruby/2.3.0/net/smtp.rb:555:in `do_start'
from /opt/rubies/ruby-2.3.1/lib/ruby/2.3.0/net/smtp.rb:521:in `start'
追踪还在继续,但我认为这是最重要的一点。
我按照此处列出的说明进行操作:https://www.sitepoint.com/deliver-the-mail-with-amazon-ses-and-rails/
任何建议将不胜感激。
【问题讨论】:
-
您确定 ENV['SES_SMTP_USERNAME'] 和 ENV['SES_SMTP_PASSWORD'] 可用于您的应用程序吗?您可能想要记录它们的值以进行检查。这些说明将其放在 development.rb 中,这不适用于生产应用程序。出于安全原因,您可能不想将其放在 production.rb 中,但将其放在哪里取决于您的服务器堆栈(apache、nginx、unicorn、passenger、puma 等)以及您使用的 Rails 版本。跨度>
-
谢谢,我很肯定 ENV 变量可用于配置文件。我认为问题可能是端口。由于某些原因
port: 465似乎解决了这个问题。仍在调查中。
标签: ruby-on-rails ruby amazon-web-services smtp amazon-elastic-beanstalk