0
  • 的Rails 4.1.4
  • 64位Linux的亞馬遜2016.09 V2.3.1運行的Ruby 2.3(彪馬)

我試圖與使用AWS SES(https://aws.amazon.com/ses/)使用彈性Beanstalk的rails應用程序設置。我在我的production.rbAWS SNS和Ruby on Rails SMTP

... 
    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/

任何意見將非常感激。

+0

您確定ENV ['SES_SMTP_USERNAME']和ENV ['SES_SMTP_PASSWORD']可用於您的應用程序嗎?你可能想要記錄他們的值來檢查。這些說明將它放在development.rb中,它不適用於生產應用程序。您可能不希望將它放在production.rb中,但出於安全原因,它取決於您的服務器堆棧(apache,nginx,獨角獸,乘客,美洲獅等)以及您正在使用的Rails版本。 –

+0

謝謝,我肯定ENV變量可用於配置文件。我認爲這個問題可能是* port *。由於某些原因'端口:465'似乎解決了這個問題。仍在調查。 – Shawnzam

回答

0

似乎將端口設置爲465解決了問題。

config.action_mailer.smtp_settings = { 
    address: 'email-smtp.us-east-1.amazonaws.com', 
    port: 465, 
    user_name: ENV['SES_SMTP_USERNAME'], # Your SMTP user 
    password: ENV['SES_SMTP_PASSWORD'], # Your SMTP password 
    authentication: :login, 
    enable_starttls_auto: true 
}